app/soc/views/site/home.py
changeset 206 832335761384
parent 164 afdf502c6cc4
child 225 2590d6b83568
--- a/app/soc/views/site/home.py	Mon Sep 29 14:03:45 2008 +0000
+++ b/app/soc/views/site/home.py	Mon Sep 29 15:31:50 2008 +0000
@@ -59,7 +59,8 @@
     model = soc.models.document.Document
     
     #: list of model fields which will *not* be gathered by the form
-    exclude = ['user','modified','created','link_name']
+    exclude = ['user','modified','created','link_name', 'inheritance_line']
+
 
 class SiteSettingsForm(forms_helpers.DbModelForm):
   """Django form displayed when creating or editing Site Settings.
@@ -70,6 +71,9 @@
     #: db.Model subclass for which the form will gather information
     model = soc.models.site_settings.SiteSettings
 
+    #: list of model fields which will *not* be gathered by the form
+    exclude = ['inheritance_line', 'home']
+
   def clean_feed_url(self):
     feed_url = self.cleaned_data.get('feed_url')
 
@@ -82,7 +86,10 @@
 
     return feed_url
 
-DEF_SITE_HOME_PATH = 'site/home'
+
+DEF_SITE_SETTINGS_PATH = 'site'
+DEF_SITE_HOME_DOC_LINK_NAME = 'home'
+
 DEF_SITE_HOME_PUBLIC_TMPL = 'soc/site/home/public.html'
 
 def public(request, template=DEF_SITE_HOME_PUBLIC_TMPL):
@@ -98,16 +105,16 @@
   # create default template context for use with any templates
   context = response_helpers.getUniversalContext(request)
   
-  document = soc.logic.document.getDocumentFromPath(DEF_SITE_HOME_PATH)
-  site_settings = soc.logic.site.settings.getSiteSettingsFromPath(DEF_SITE_HOME_PATH)
-  
-  if document:
-    document.content = template_helpers.unescape(document.content)
-    context.update({'site_document': document})
-  
+  site_settings = soc.logic.site.settings.getSiteSettings(DEF_SITE_SETTINGS_PATH)
+
   if site_settings:
     context.update({'site_settings': site_settings})
-    
+    site_doc = site_settings.home
+  
+    if site_doc:
+      site_doc.content = template_helpers.unescape(site_doc.content)
+      context.update({'site_document': site_doc})
+
   return response_helpers.respond(request, template, context)
 
 
@@ -129,13 +136,13 @@
   logged_in_id = users.get_current_user()
   
   alt_response = simple.getAltResponseIfNotDeveloper(request, context, 
-                                                        id = logged_in_id)
+                                                     id=logged_in_id)
   if alt_response:
     # not a developer
     return alt_response
   
   alt_response = simple.getAltResponseIfNotLoggedIn(request, context, 
-                                                        id = logged_in_id)
+                                                    id=logged_in_id)
   if alt_response:
     # not logged in
     return alt_response
@@ -156,47 +163,43 @@
 
     if document_form.is_valid() and settings_form.is_valid():
       title = document_form.cleaned_data.get('title')
-      link_name = DEF_SITE_HOME_PATH
+      link_name = DEF_SITE_HOME_DOC_LINK_NAME
       short_name = document_form.cleaned_data.get('short_name')
+      abstract = document_form.cleaned_data.get('abstract')
       content = document_form.cleaned_data.get('content')
       
+      site_doc = soc.logic.document.updateOrCreateDocument(
+          DEF_SITE_SETTINGS_PATH, link_name=link_name, title=title,
+          short_name=short_name, abstract=abstract, content=content,
+          user=id_user.getUserFromId(logged_in_id))
+      
       feed_url = settings_form.cleaned_data.get('feed_url')
-      
-      document = soc.logic.document.updateOrCreateDocumentFromPath(
-                                  DEF_SITE_HOME_PATH,
-                                  link_name = link_name,
-                                  title = title,
-                                  short_name = short_name,
-                                  content = content,
-                                  user = id_user.getUserFromId(logged_in_id))
 
-      site_settings = soc.logic.site.settings.updateOrCreateSiteSettingsFromPath(
-                                  DEF_SITE_HOME_PATH,
-                                  feed_url = feed_url)
+      site_settings = soc.logic.site.settings.updateOrCreateSiteSettings(
+          DEF_SITE_SETTINGS_PATH, home=site_doc, feed_url=feed_url)
       
       context.update({'submit_message': 'Site Settings saved.'})
   else: # request.method == 'GET'
-    # try to fetch Document entity by unique key_name   
-    document = soc.logic.document.getDocumentFromPath(DEF_SITE_HOME_PATH)
+    # try to fetch SiteSettings entity by unique key_name
+    site_settings = soc.logic.site.settings.getSiteSettings(
+        DEF_SITE_SETTINGS_PATH)
 
-    if document:
+    if site_settings:
+      # populate form with the existing SiteSettings entity
+      settings_form = SiteSettingsForm(instance=site_settings)
+      site_doc = site_settings.home
+    else:
+      # no SiteSettings entity exists for this key_name, so show a blank form
+      settings_form = SiteSettingsForm()
+      site_doc = None
+
+    if site_doc:
       # populate form with the existing Document entity
-      document_form = DocumentForm(instance=document)
+      document_form = DocumentForm(instance=site_doc)
     else:
       # no Document entity exists for this key_name, so show a blank form
       document_form = DocumentForm()
       
-    # try to fetch SiteSettings entity by unique key_name   
-    site_settings = soc.logic.site.settings.getSiteSettingsFromPath(
-                                                        DEF_SITE_HOME_PATH)
-
-    if site_settings:
-      # populate form with the existing SiteSettings entity
-      settings_form = SiteSettingsForm(instance=site_settings)
-    else:
-      # no SiteSettings entity exists for this key_name, so show a blank form
-      settings_form = SiteSettingsForm()
-    
   context.update({'document_form': document_form,
                   'settings_form': settings_form })