[Erp5-report] r17365 - /erp5/trunk/products/ERP5Type/patches/WorkflowTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Nov 2 15:05:12 CET 2007


Author: vincent
Date: Fri Nov  2 15:05:12 2007
New Revision: 17365

URL: http://svn.erp5.org?rev=17365&view=rev
Log:
Allow getSecurityUidListAndRoleColumnDict to be None in groupWorklistListByCondition (part 2 of 2)
 - replace factorisale code by method calls

Modified:
    erp5/trunk/products/ERP5Type/patches/WorkflowTool.py

Modified: erp5/trunk/products/ERP5Type/patches/WorkflowTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/WorkflowTool.py?rev=17365&r1=17364&r2=17365&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/WorkflowTool.py (original)
+++ erp5/trunk/products/ERP5Type/patches/WorkflowTool.py Fri Nov  2 15:05:12 2007
@@ -193,7 +193,11 @@
         # worklists if possible at all.
         for security_column_id, security_column_value in \
             role_column_dict.iteritems():
-          valid_criterion_dict = {}
+          valid_criterion_dict, metadata = getValidCriterionDict(
+            worklist_match_dict=worklist_match_dict,
+            acceptable_key_dict=acceptable_key_dict)
+          if metadata is not None:
+            metadata_dict[workflow_worklist_key] = metadata
           valid_criterion_dict.update(applied_security_criterion_dict)
           # Current security criterion must be applied to all further queries
           # for this worklist negated, so the a given line cannot match multiple
@@ -201,29 +205,10 @@
           applied_security_criterion_dict[security_column_id] = \
             ExclusionList(security_column_value)
           valid_criterion_dict[security_column_id] = security_column_value
-          for criterion_id, criterion_value in worklist_match_dict.iteritems():
-            if criterion_id in acceptable_key_dict:
-              if isinstance(criterion_value, tuple):
-                criterion_value = list(criterion_value)
-              assert criterion_id not in valid_criterion_dict
-              valid_criterion_dict[criterion_id] = criterion_value
-            elif criterion_id == WORKLIST_METADATA_KEY:
-              metadata_dict[workflow_worklist_key] = criterion_value
-            elif criterion_id == SECURITY_PARAMETER_ID:
-              pass
-            else:
-              LOG('WorkflowTool_listActions', WARNING, 'Worklist %s of ' \
-                  'workflow %s filters on variable %s which is not available ' \
-                  'in catalog. Its value will not be checked.' % \
-                  (worklist_id, workflow_id, criterion_id))
-          worklist_set_dict_key = valid_criterion_dict.keys()
-          if len(worklist_set_dict_key):
-            worklist_set_dict_key.sort()
-            worklist_set_dict_key = tuple(worklist_set_dict_key)
-            if worklist_set_dict_key not in worklist_set_dict:
-              worklist_set_dict[worklist_set_dict_key] = {}
-            worklist_set_dict[worklist_set_dict_key]\
-              [workflow_worklist_key] = valid_criterion_dict
+          updateWorklistSetDict(
+            worklist_set_dict=worklist_set_dict,
+            workflow_worklist_key=workflow_worklist_key,
+            valid_criterion_dict=valid_criterion_dict)
   return worklist_set_dict.values(), metadata_dict
 
 def generateNestedQuery(priority_list, criterion_dict,




More information about the Erp5-report mailing list