# HG changeset patch # User Sverre Rabbelier # Date 1233103535 0 # Node ID 969566aa110d9ef9a774c24988cbf2dd1d057764 # Parent 846fe3d821fbae9f931ee4f53e86189e18142e51 Allow appending to dynainclude/-exclude Patch by: Sverre Rabbelier diff -r 846fe3d821fb -r 969566aa110d app/soc/views/helper/dynaform.py --- a/app/soc/views/helper/dynaform.py Wed Jan 28 00:36:30 2009 +0000 +++ b/app/soc/views/helper/dynaform.py Wed Jan 28 00:45:35 2009 +0000 @@ -99,7 +99,7 @@ def extendDynaForm(dynaform, dynainclude=None, dynaexclude=None, - dynafields=None): + dynafields=None, append=False): """Extends an existing dynaform. If any of dynainclude, dynaexclude or dynafields are not present, @@ -108,6 +108,10 @@ While it is rather useles to extend from a dynaform that does not have a Meta class, it is allowed, the resulting DynaForm is the same as if newDynaForm was called with all extendDynForm's keyword arguments. + + If append is True, the form's original values for include and + exclude will be appended to the supplied dynainclude and + dynaexclude, which both are still allowed to be None. """ # Try to retrieve the Meta class from the existing dynaform @@ -118,10 +122,13 @@ dynamodel = getattr(meta, 'model', None) if not dynainclude: - dynainclude = getattr(meta, 'include', None) + dynainclude = [] + if not dynaexclude: + dynaexclude = [] - if not dynaexclude: - dynaexclude = getattr(meta, 'exclude', None) + if append: + dynainclude += getattr(meta, 'include', []) + dynaexclude += getattr(meta, 'exclude', []) # The most intersting parameter, the 'extra fields' dictionary dynaconf = getattr(meta, 'dynaconf', {})