app/soc/views/models/site.py
changeset 1581 4484186d7427
parent 1526 5c31184594a5
child 1583 1e4c785f1adf
equal deleted inserted replaced
1580:947a0ee153a4 1581:4484186d7427
    29 from soc.logic import cleaning
    29 from soc.logic import cleaning
    30 from soc.logic import dicts
    30 from soc.logic import dicts
    31 from soc.views import out_of_band
    31 from soc.views import out_of_band
    32 from soc.views.helper import access
    32 from soc.views.helper import access
    33 from soc.views.helper import redirects
    33 from soc.views.helper import redirects
       
    34 from soc.views.helper import responses
    34 from soc.views.helper import widgets
    35 from soc.views.helper import widgets
    35 from soc.views.models import document as document_view
    36 from soc.views.models import document as document_view
    36 from soc.views.models import presence_with_tos
    37 from soc.views.models import presence_with_tos
    37 
    38 
    38 import soc.models.site
    39 import soc.models.site
    41 
    42 
    42 
    43 
    43 class View(presence_with_tos.View):
    44 class View(presence_with_tos.View):
    44   """View methods for the Document model.
    45   """View methods for the Document model.
    45   """
    46   """
       
    47 
       
    48   DEF_DOWN_FOR_MAINTENANCE_MSG = ugettext("Down for maintenance")
       
    49   DEF_NOT_IN_MAINTENANCE_MSG = ugettext(
       
    50       "The site is currently not in maintenance mode.")
    46 
    51 
    47   def __init__(self, params=None):
    52   def __init__(self, params=None):
    48     """Defines the fields and methods required for the base View class
    53     """Defines the fields and methods required for the base View class
    49     to provide the user with list, public, create, edit and delete views.
    54     to provide the user with list, public, create, edit and delete views.
    50 
    55 
    94 
    99 
    95     page_name = "Home Page"
   100     page_name = "Home Page"
    96     patterns += [(r'^$', 'soc.views.models.%(module_name)s.main_public', 
   101     patterns += [(r'^$', 'soc.views.models.%(module_name)s.main_public', 
    97                   page_name)]
   102                   page_name)]
    98 
   103 
       
   104     page_name = "Maintenance"
       
   105     patterns += [(r'^maintenance$', 'soc.views.models.%(module_name)s.maintenance',
       
   106                   page_name)]
       
   107 
    99     page_name = "Edit Site"
   108     page_name = "Edit Site"
   100     patterns += [(r'^%(url_name)s/(?P<access_type>edit)$',
   109     patterns += [(r'^%(url_name)s/(?P<access_type>edit)$',
   101                   'soc.views.models.%(module_name)s.main_edit',
   110                   'soc.views.models.%(module_name)s.main_edit',
   102                   page_name)]
   111                   page_name)]
   103 
   112 
   138     new_params = {}
   147     new_params = {}
   139     new_params['sidebar_additional'] = submenus
   148     new_params['sidebar_additional'] = submenus
   140 
   149 
   141     params = dicts.merge(params, new_params)
   150     params = dicts.merge(params, new_params)
   142     return super(View, self).getSidebarMenus(id, user, params=params)
   151     return super(View, self).getSidebarMenus(id, user, params=params)
       
   152 
       
   153   def maintenance(self, request, page_name):
       
   154     """Returns a 'down for maintenance' view.
       
   155     """
       
   156 
       
   157     context = responses.getUniversalContext(request)
       
   158     context['page_name'] = page_name
       
   159 
       
   160     notice = context.pop('site_notice')
       
   161 
       
   162     if not notice:
       
   163       context['body_content'] = self.DEF_NOT_IN_MAINTENANCE_MSG
       
   164     else:
       
   165       context['body_content'] = notice
       
   166       context['header_title'] = self.DEF_DOWN_FOR_MAINTENANCE_MSG
       
   167       context['sidebar_menu_items'] = [
       
   168             {'heading': self.DEF_DOWN_FOR_MAINTENANCE_MSG,
       
   169              'group': ''},
       
   170             ]
       
   171 
       
   172     template = 'soc/base.html'
       
   173 
       
   174     return responses.respond(request, template, context=context)
   143 
   175 
   144   def mainPublic(self, request, page_name=None, **kwargs):
   176   def mainPublic(self, request, page_name=None, **kwargs):
   145     """Displays the main site settings page.
   177     """Displays the main site settings page.
   146 
   178 
   147     Args:
   179     Args:
   187 list = view.list
   219 list = view.list
   188 public = view.public
   220 public = view.public
   189 export = view.export
   221 export = view.export
   190 main_public = view.mainPublic
   222 main_public = view.mainPublic
   191 main_edit = view.mainEdit
   223 main_edit = view.mainEdit
       
   224 maintenance = view.maintenance
   192 home = view.home
   225 home = view.home