app/soc/views/helper/params.py
changeset 1432 cc58eb1136d6
parent 1430 ff8cc6b15e6a
child 1457 9fd31955cc49
equal deleted inserted replaced
1431:7e54ef90c210 1432:cc58eb1136d6
    60     'jq_ui_core',
    60     'jq_ui_core',
    61     'menu',
    61     'menu',
    62     'orgaccept',
    62     'orgaccept',
    63     'tinymce',
    63     'tinymce',
    64     ]
    64     ]
       
    65 
       
    66 DEF_FIELD_INIT_PARAMS = ['required', 'widget', 'label', 'initial', 'help_text',
       
    67                          'error_messages', 'show_hidden_initial']
    65 
    68 
    66 
    69 
    67 def constructParams(params):
    70 def constructParams(params):
    68   """Constructs a new params dictionary based on params.
    71   """Constructs a new params dictionary based on params.
    69 
    72 
   244       'clean_link_id': cleaning.clean_link_id('link_id'),
   247       'clean_link_id': cleaning.clean_link_id('link_id'),
   245       'clean_feed_url': cleaning.clean_feed_url,
   248       'clean_feed_url': cleaning.clean_feed_url,
   246       }
   249       }
   247   create_dynaproperties.update(params.get('create_extra_dynaproperties', {}))
   250   create_dynaproperties.update(params.get('create_extra_dynaproperties', {}))
   248 
   251 
       
   252   # dynafields override any dynaproperties
       
   253   create_dynafields = getDynaFields(params.get('create_dynafields', {}))
       
   254   create_dynaproperties = dicts.merge(create_dynafields, create_dynaproperties)
       
   255 
   249   new_params['references'] = []
   256   new_params['references'] = []
   250   new_params['create_dynainclude'] = [] + params.get('extra_dynainclude', [])
   257   new_params['create_dynainclude'] = [] + params.get('extra_dynainclude', [])
   251   new_params['create_dynaexclude'] = ['scope', 'scope_path'] + \
   258   new_params['create_dynaexclude'] = ['scope', 'scope_path'] + \
   252       params.get('extra_dynaexclude', [])
   259       params.get('extra_dynaexclude', [])
   253   new_params['create_dynaproperties'] = create_dynaproperties
   260   new_params['create_dynaproperties'] = create_dynaproperties
   256       'clean_link_id': cleaning.clean_link_id('link_id'),
   263       'clean_link_id': cleaning.clean_link_id('link_id'),
   257       'link_id': forms.CharField(widget=helper.widgets.ReadOnlyInput()),
   264       'link_id': forms.CharField(widget=helper.widgets.ReadOnlyInput()),
   258       }
   265       }
   259   edit_dynaproperties.update(params.get('edit_extra_dynaproperties', {}))
   266   edit_dynaproperties.update(params.get('edit_extra_dynaproperties', {}))
   260 
   267 
       
   268   # dynafields override any dynaproperties
       
   269   edit_dynafields = getDynaFields(params.get('edit_dynafields', {}))
       
   270   edit_dynaproperties = dicts.merge(edit_dynafields, edit_dynaproperties)
       
   271 
   261   new_params['edit_dynainclude'] = None
   272   new_params['edit_dynainclude'] = None
   262   new_params['edit_dynaexclude'] = None
   273   new_params['edit_dynaexclude'] = None
   263   new_params['edit_dynaproperties'] = edit_dynaproperties
   274   new_params['edit_dynaproperties'] = edit_dynaproperties
   264 
   275 
   265   params = dicts.merge(params, new_params)
   276   params = dicts.merge(params, new_params)
   280 
   291 
   281   # merge already done by access.Checker
   292   # merge already done by access.Checker
   282   params['rights'] = rights
   293   params['rights'] = rights
   283 
   294 
   284   return params
   295   return params
       
   296 
       
   297 
       
   298 def getDynaFields(fields):
       
   299   """Constructs a new DynaField using params.
       
   300 
       
   301   Args:
       
   302     params: the params dictionary used to extract the dyanfields
       
   303     param_name: the name of the parameter to use
       
   304   """
       
   305 
       
   306   dynafields = {}
       
   307 
       
   308   # generate the dynafields
       
   309   for field in fields:
       
   310     base = field.pop('base')
       
   311     name = field.pop('name')
       
   312     passthrough = field.pop('passthrough', DEF_FIELD_INIT_PARAMS)
       
   313 
       
   314     dynafield = dynaform.newDynaField(field, base, passthrough)
       
   315     dynafields[name] = dynafield()
       
   316 
       
   317   return dynafields
   285 
   318 
   286 
   319 
   287 def getCreateForm(params, model):
   320 def getCreateForm(params, model):
   288   """Constructs a new CreateForm using params.
   321   """Constructs a new CreateForm using params.
   289 
   322