app/soc/views/models/presence.py
changeset 1229 ec3768cbf369
parent 1218 569a3fe9cb88
child 1241 5e25cd6abe09
equal deleted inserted replaced
1228:b24796279fb9 1229:ec3768cbf369
    33 from soc.logic.models import document as document_logic
    33 from soc.logic.models import document as document_logic
    34 from soc.views import helper
    34 from soc.views import helper
    35 from soc.views.helper import access
    35 from soc.views.helper import access
    36 from soc.views.helper import decorators
    36 from soc.views.helper import decorators
    37 from soc.views.helper import redirects
    37 from soc.views.helper import redirects
       
    38 from soc.views.helper import widgets
    38 from soc.views.models import base
    39 from soc.views.models import base
    39 
    40 
    40 import soc.models.presence
    41 import soc.models.presence
    41 import soc.logic.models.presence
    42 import soc.logic.models.presence
    42 import soc.logic.dicts
    43 import soc.logic.dicts
    64 
    65 
    65     new_params['extra_dynaexclude'] = ['home', 'tos']
    66     new_params['extra_dynaexclude'] = ['home', 'tos']
    66     new_params['home_template'] = 'soc/presence/home.html'
    67     new_params['home_template'] = 'soc/presence/home.html'
    67 
    68 
    68     new_params['create_extra_dynafields'] = {
    69     new_params['create_extra_dynafields'] = {
    69         'home_link_id': forms.CharField(required=False,
       
    70             label=ugettext('Home page Document link ID'),
       
    71             help_text=soc.models.work.Work.link_id.help_text),
       
    72 
       
    73         # add cleaning of the link id and feed url
    70         # add cleaning of the link id and feed url
    74         'clean_link_id': cleaning.clean_link_id('link_id'),
    71         'clean_link_id': cleaning.clean_link_id('link_id'),
    75         'clean_feed_url': cleaning.clean_feed_url,
    72         'clean_feed_url': cleaning.clean_feed_url,
    76         }
    73         }
       
    74 
       
    75     new_params['edit_extra_dynafields'] = {
       
    76         'home_link_id': widgets.ReferenceField(
       
    77             reference_url='document', filter=['scope_path'],
       
    78             required=False, label=ugettext('Home page Document link ID'),
       
    79             help_text=soc.models.work.Work.link_id.help_text),
       
    80     }
       
    81 
    77 
    82 
    78     patterns = []
    83     patterns = []
    79 
    84 
    80     page_name = "Home"
    85     page_name = "Home"
    81     patterns += [(r'^%(url_name)s/(?P<access_type>home)/%(key_fields)s$',
    86     patterns += [(r'^%(url_name)s/(?P<access_type>home)/%(key_fields)s$',
   134 
   139 
   135   def _editPost(self, request, entity, fields):
   140   def _editPost(self, request, entity, fields):
   136     """See base.View._editPost().
   141     """See base.View._editPost().
   137     """
   142     """
   138 
   143 
       
   144     if 'home_link_id' not in fields:
       
   145       return super(View, self)._editPost(request, entity, fields)
       
   146 
   139     scope_path = self._logic.getKeyNameFromFields(fields)
   147     scope_path = self._logic.getKeyNameFromFields(fields)
   140 
   148 
   141     key_fields = {
   149     key_fields = {
   142         'scope_path': scope_path,
   150         'scope_path': scope_path,
   143         'link_id': fields['home_link_id'],
   151         'link_id': fields['home_link_id'],