app/soc/views/models/base.py
changeset 606 65d35584ee31
parent 605 4a384d412640
child 610 e0bd276ffd82
equal deleted inserted replaced
605:4a384d412640 606:65d35584ee31
    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: