23 '"Pawel Solyga" <pawel.solyga@gmail.com>', |
23 '"Pawel Solyga" <pawel.solyga@gmail.com>', |
24 ] |
24 ] |
25 |
25 |
26 |
26 |
27 from django import http |
27 from django import http |
|
28 from django import forms |
28 from django.conf.urls import defaults |
29 from django.conf.urls import defaults |
29 from django.utils.translation import ugettext_lazy |
30 from django.utils.translation import ugettext_lazy |
30 |
31 |
31 import soc.logic |
32 import soc.logic |
32 import soc.logic.lists |
33 import soc.logic.lists |
33 import soc.views.helper.lists |
34 import soc.views.helper.lists |
34 import soc.views.helper.responses |
35 import soc.views.helper.responses |
35 |
36 |
|
37 from soc.logic import cleaning |
36 from soc.logic import dicts |
38 from soc.logic import dicts |
37 from soc.logic import models |
39 from soc.logic import models |
38 from soc.models import linkable |
40 from soc.models import linkable |
39 from soc.views import helper |
41 from soc.views import helper |
40 from soc.views import out_of_band |
42 from soc.views import out_of_band |
41 from soc.views.helper import access |
43 from soc.views.helper import access |
|
44 from soc.views.helper import dynaform |
42 |
45 |
43 |
46 |
44 class View(object): |
47 class View(object): |
45 """Views for entity classes. |
48 """Views for entity classes. |
46 |
49 |
161 new_params['save_message'] = [ugettext_lazy('Profile saved.')] |
164 new_params['save_message'] = [ugettext_lazy('Profile saved.')] |
162 new_params['edit_params'] = { |
165 new_params['edit_params'] = { |
163 self.DEF_SUBMIT_MSG_PARAM_NAME: self.DEF_SUBMIT_MSG_PROFILE_SAVED, |
166 self.DEF_SUBMIT_MSG_PARAM_NAME: self.DEF_SUBMIT_MSG_PROFILE_SAVED, |
164 } |
167 } |
165 |
168 |
|
169 new_params['dynabase'] = helper.forms.BaseForm |
|
170 |
|
171 new_params['create_dynainclude'] = [] + params.get('extra_dynainclude', []) |
|
172 new_params['create_dynaexclude'] = ['scope', 'scope_path'] + \ |
|
173 params.get('extra_dynaexclude', []) |
|
174 new_params['create_dynafields'] = { |
|
175 'clean_link_id': cleaning.clean_new_link_id(params['logic']), |
|
176 'clean_feed_url': cleaning.clean_feed_url, |
|
177 } |
|
178 |
|
179 dynafields = { |
|
180 'clean_link_id': cleaning.clean_link_id, |
|
181 'link_id': forms.CharField(widget=helper.widgets.ReadOnlyInput()), |
|
182 } |
|
183 dynafields.update(params.get('extra_dynafields', {})) |
|
184 |
|
185 new_params['edit_dynainclude'] = None |
|
186 new_params['edit_dynaexclude'] = None |
|
187 new_params['edit_dynafields'] = dynafields |
|
188 |
166 self._params = dicts.merge(params, new_params) |
189 self._params = dicts.merge(params, new_params) |
167 self._logic = self._params['logic'] |
190 self._logic = self._params['logic'] |
|
191 |
|
192 # These need to be constructed seperately, because they require |
|
193 # parameters that can be defined either in params, or new_params. |
|
194 if 'create_form' not in self._params: |
|
195 self._params['create_form'] = dynaform.newDynaForm( |
|
196 dynabase = self._params['dynabase'], |
|
197 dynamodel = self._logic.getModel(), |
|
198 dynainclude = self._params['create_dynainclude'], |
|
199 dynaexclude = self._params['create_dynaexclude'], |
|
200 dynafields = self._params['create_dynafields'], |
|
201 ) |
|
202 |
|
203 if 'edit_form' not in self._params: |
|
204 self._params['edit_form'] = dynaform.extendDynaForm( |
|
205 dynaform = self._params['create_form'], |
|
206 dynainclude = self._params['edit_dynainclude'], |
|
207 dynaexclude = self._params['edit_dynaexclude'], |
|
208 dynafields = self._params['edit_dynafields'], |
|
209 ) |
168 |
210 |
169 def public(self, request, page_name=None, params=None, **kwargs): |
211 def public(self, request, page_name=None, params=None, **kwargs): |
170 """Displays the public page for the entity specified by **kwargs. |
212 """Displays the public page for the entity specified by **kwargs. |
171 |
213 |
172 Args: |
214 Args: |