app/soc/views/site/home.py
changeset 294 1fdaab4a6ef2
parent 290 2a92b866ed40
child 299 a1cc853a56e5
equal deleted inserted replaced
293:1edd01373e71 294:1fdaab4a6ef2
    34 from django import newforms as forms
    34 from django import newforms as forms
    35 
    35 
    36 from soc.logic import out_of_band
    36 from soc.logic import out_of_band
    37 from soc.logic import validate
    37 from soc.logic import validate
    38 from soc.logic.site import id_user
    38 from soc.logic.site import id_user
       
    39 from soc.logic.helper import access
    39 from soc.views import simple
    40 from soc.views import simple
    40 from soc.views import helper
    41 from soc.views import helper
    41 import soc.views.helper.forms
    42 import soc.views.helper.forms
    42 import soc.views.helper.responses
    43 import soc.views.helper.responses
    43 import soc.views.helper.templates
    44 import soc.views.helper.templates
   129     template: the template path to use for rendering the template.
   130     template: the template path to use for rendering the template.
   130 
   131 
   131   Returns:
   132   Returns:
   132     A subclass of django.http.HttpResponse with generated template.
   133     A subclass of django.http.HttpResponse with generated template.
   133   """
   134   """
       
   135 
       
   136   try:
       
   137     access.checkIsDeveloper(request)
       
   138   except  soc.logic.out_of_band.AccessViolationResponse, alt_response:
       
   139     return alt_response.response()
       
   140 
   134   # create default template context for use with any templates
   141   # create default template context for use with any templates
   135   context = helper.responses.getUniversalContext(request)
   142   context = helper.responses.getUniversalContext(request)
   136   
   143 
   137   logged_in_id = users.get_current_user()
       
   138   
       
   139   alt_response = simple.getAltResponseIfNotDeveloper(request, context, 
       
   140                                                      id=logged_in_id)
       
   141   if alt_response:
       
   142     # not a developer
       
   143     return alt_response
       
   144   
       
   145   alt_response = simple.getAltResponseIfNotLoggedIn(request, context, 
       
   146                                                     id=logged_in_id)
       
   147   if alt_response:
       
   148     # not logged in
       
   149     return alt_response
       
   150   
       
   151   alt_response = simple.getAltResponseIfNotUser(request, context, 
       
   152                                                         id = logged_in_id)
       
   153   if alt_response:
       
   154     # no existing User entity for logged in Google Account. User entity is 
       
   155     # required for creating Documents
       
   156     return alt_response
       
   157                              
       
   158   settings_form = None
   144   settings_form = None
   159   document_form = None
   145   document_form = None
   160 
   146 
   161   if request.method == 'POST':
   147   if request.method == 'POST':
   162     document_form = DocumentForm(request.POST)
   148     document_form = DocumentForm(request.POST)
   167       link_name = DEF_SITE_HOME_DOC_LINK_NAME
   153       link_name = DEF_SITE_HOME_DOC_LINK_NAME
   168       short_name = document_form.cleaned_data.get('short_name')
   154       short_name = document_form.cleaned_data.get('short_name')
   169       abstract = document_form.cleaned_data.get('abstract')
   155       abstract = document_form.cleaned_data.get('abstract')
   170       content = document_form.cleaned_data.get('content')
   156       content = document_form.cleaned_data.get('content')
   171       
   157       
       
   158       logged_in_id = users.get_current_user()
       
   159 
   172       site_doc = soc.logic.document.updateOrCreateDocument(
   160       site_doc = soc.logic.document.updateOrCreateDocument(
   173           partial_path=DEF_SITE_SETTINGS_PATH, link_name=link_name,
   161           partial_path=DEF_SITE_SETTINGS_PATH, link_name=link_name,
   174           title=title, short_name=short_name, abstract=abstract,
   162           title=title, short_name=short_name, abstract=abstract,
   175           content=content, user=id_user.getUserFromId(logged_in_id))
   163           content=content, user=id_user.getUserFromId(logged_in_id))
   176       
   164