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: |