app/soc/views/helper/params.py
changeset 1338 4b8546a3b20c
parent 1324 8cf30dee8048
child 1343 4ba39392c854
equal deleted inserted replaced
1337:77931c584199 1338:4b8546a3b20c
    30 from soc.models import linkable
    30 from soc.models import linkable
    31 from soc.views import helper
    31 from soc.views import helper
    32 from soc.views.helper import access
    32 from soc.views.helper import access
    33 from soc.views.helper import dynaform
    33 from soc.views.helper import dynaform
    34 from soc.views.helper import redirects
    34 from soc.views.helper import redirects
       
    35 from soc.views.helper import widgets
    35 
    36 
    36 
    37 
    37 DEF_LIST_DESCRIPTION_FMT = ugettext(
    38 DEF_LIST_DESCRIPTION_FMT = ugettext(
    38     'List of %(name_plural)s in Google Open Source Programs.')
    39     'List of %(name_plural)s in Google Open Source Programs.')
    39 
    40 
   239     params['create_form'] = getCreateForm(params, logic.getModel())
   240     params['create_form'] = getCreateForm(params, logic.getModel())
   240 
   241 
   241   if not 'edit_form' in params:
   242   if not 'edit_form' in params:
   242     params['edit_form'] = getEditForm(params, params['create_form'])
   243     params['edit_form'] = getEditForm(params, params['create_form'])
   243 
   244 
       
   245   if not 'admin_form' in params:
       
   246     params['admin_form'] = getAdminForm(params['edit_form'])
       
   247 
   244   if not 'key_fields_pattern' in params:
   248   if not 'key_fields_pattern' in params:
   245     params['key_fields_pattern'] = getKeyFieldsPattern(params)
   249     params['key_fields_pattern'] = getKeyFieldsPattern(params)
   246 
   250 
   247   # merge already done by access.Checker
   251   # merge already done by access.Checker
   248   params['rights'] = rights
   252   params['rights'] = rights
   298     )
   302     )
   299 
   303 
   300   return edit_form
   304   return edit_form
   301 
   305 
   302 
   306 
       
   307 def getAdminForm(base_form):
       
   308   """Constructs a new AdminForm from base_form.
       
   309   """
       
   310 
       
   311   # extend to do a proper copy
       
   312   admin_form = dynaform.extendDynaForm(
       
   313     dynaform = base_form,
       
   314     )
       
   315 
       
   316   # replace all widgets with PTW's
       
   317   for key, value in admin_form.base_fields.iteritems():
       
   318     if not isinstance(value, forms.fields.Field):
       
   319       continue
       
   320     value.widget = widgets.PlainTextWidget()
       
   321 
       
   322   return admin_form
       
   323 
       
   324 
   303 def getKeyFieldsPattern(params):
   325 def getKeyFieldsPattern(params):
   304   """Returns the Django pattern for this View's entity.
   326   """Returns the Django pattern for this View's entity.
   305   """
   327   """
   306 
   328 
   307   names = params['logic'].getKeyFieldNames()
   329   names = params['logic'].getKeyFieldNames()