[Erp5-report] r42720 nicolas.dumazet - /erp5/trunk/products/ERP5/InteractionWorkflow.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Jan 28 08:06:29 CET 2011


Author: nicolas.dumazet
Date: Fri Jan 28 08:06:29 2011
New Revision: 42720

URL: http://svn.erp5.org?rev=42720&view=rev
Log:
As far as I can tell, we only ever user trigger_workflows

If this is not the case, we should adapt code registrating methods
to skip non-triggers instead of checking invalid transitions all the
time. Hence the assert.

Modified:
    erp5/trunk/products/ERP5/InteractionWorkflow.py

Modified: erp5/trunk/products/ERP5/InteractionWorkflow.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/InteractionWorkflow.py?rev=42720&r1=42719&r2=42720&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/InteractionWorkflow.py [utf8] (original)
+++ erp5/trunk/products/ERP5/InteractionWorkflow.py [utf8] Fri Jan 28 08:06:29 2011
@@ -226,19 +226,19 @@ class InteractionWorkflowDefinition (DCW
 
         for t_id in transition_list:
           tdef = self.interactions[t_id]
-          if tdef.trigger_type == TRIGGER_WORKFLOW_METHOD:
-            if (tdef.portal_type_filter is None or \
-                ob.getPortalType() in tdef.portal_type_filter) and \
-                self._checkTransitionGuard(tdef, ob, **kw):
-              filtered_transition_list.append(tdef.id)
-              former_status = self._getStatusOf(ob)
-              # Execute the "before" script.
-              for script_name in tdef.script_name:
-                script = self.scripts[script_name]
-                # Pass lots of info to the script in a single parameter.
-                sci = StateChangeInfo(
-                    ob, self, former_status, tdef, None, None, kwargs=kw)
-                script(sci)  # May throw an exception
+          assert tdef.trigger_type == TRIGGER_WORKFLOW_METHOD
+          if (tdef.portal_type_filter is None or \
+              ob.getPortalType() in tdef.portal_type_filter) and \
+              self._checkTransitionGuard(tdef, ob, **kw):
+            filtered_transition_list.append(tdef.id)
+            former_status = self._getStatusOf(ob)
+            # Execute the "before" script.
+            for script_name in tdef.script_name:
+              script = self.scripts[script_name]
+              # Pass lots of info to the script in a single parameter.
+              sci = StateChangeInfo(
+                  ob, self, former_status, tdef, None, None, kwargs=kw)
+              script(sci)  # May throw an exception
 
         return filtered_transition_list
 
@@ -256,62 +256,62 @@ class InteractionWorkflowDefinition (DCW
 
         for t_id in transition_list:
           tdef = self.interactions[t_id]
-          if tdef.trigger_type == TRIGGER_WORKFLOW_METHOD:
-            if (tdef.portal_type_filter is None or \
-                ob.getPortalType() in tdef.portal_type_filter):
-              # Initialize variables
-              former_status = self._getStatusOf(ob)
-              econtext = None
-              sci = None
-
-              # Update variables.
-              tdef_exprs = tdef.var_exprs
-              if tdef_exprs is None: tdef_exprs = {}
-              status = {}
-              for id, vdef in self.variables.items():
-                if not vdef.for_status:
-                  continue
-                expr = None
-                if tdef_exprs.has_key(id):
-                  expr = tdef_exprs[id]
-                elif not vdef.update_always and former_status.has_key(id):
-                  # Preserve former value
-                  value = former_status[id]
+          assert tdef.trigger_type == TRIGGER_WORKFLOW_METHOD
+          if (tdef.portal_type_filter is None or \
+              ob.getPortalType() in tdef.portal_type_filter):
+            # Initialize variables
+            former_status = self._getStatusOf(ob)
+            econtext = None
+            sci = None
+
+            # Update variables.
+            tdef_exprs = tdef.var_exprs
+            if tdef_exprs is None: tdef_exprs = {}
+            status = {}
+            for id, vdef in self.variables.items():
+              if not vdef.for_status:
+                continue
+              expr = None
+              if tdef_exprs.has_key(id):
+                expr = tdef_exprs[id]
+              elif not vdef.update_always and former_status.has_key(id):
+                # Preserve former value
+                value = former_status[id]
+              else:
+                if vdef.default_expr is not None:
+                  expr = vdef.default_expr
                 else:
-                  if vdef.default_expr is not None:
-                    expr = vdef.default_expr
-                  else:
-                    value = vdef.default_value
-                if expr is not None:
-                  # Evaluate an expression.
-                  if econtext is None:
-                    # Lazily create the expression context.
-                    if sci is None:
-                      sci = StateChangeInfo(
-                          ob, self, former_status, tdef,
-                          None, None, None)
-                    econtext = createExprContext(sci)
-                  value = expr(econtext)
-                status[id] = value
-
-              sci = StateChangeInfo(
-                    ob, self, former_status, tdef, None, None, kwargs=kw)
-              # Execute the "after" script.
-              for script_name in tdef.after_script_name:
-                script = self.scripts[script_name]
-                # Pass lots of info to the script in a single parameter.
-                script(sci)  # May throw an exception
-
-              # Execute Before Commit
-              for script_name in tdef.before_commit_script_name:
-                transaction.get().addBeforeCommitHook(self._before_commit,
-                                                      (sci, script_name))
-
-              # Execute "activity" scripts
-              for script_name in tdef.activate_script_name:
-                self.activate(activity='SQLQueue')\
-                    .activeScript(script_name, ob.getRelativeUrl(),
-                                  status, tdef.id)
+                  value = vdef.default_value
+              if expr is not None:
+                # Evaluate an expression.
+                if econtext is None:
+                  # Lazily create the expression context.
+                  if sci is None:
+                    sci = StateChangeInfo(
+                        ob, self, former_status, tdef,
+                        None, None, None)
+                  econtext = createExprContext(sci)
+                value = expr(econtext)
+              status[id] = value
+
+            sci = StateChangeInfo(
+                  ob, self, former_status, tdef, None, None, kwargs=kw)
+            # Execute the "after" script.
+            for script_name in tdef.after_script_name:
+              script = self.scripts[script_name]
+              # Pass lots of info to the script in a single parameter.
+              script(sci)  # May throw an exception
+
+            # Execute Before Commit
+            for script_name in tdef.before_commit_script_name:
+              transaction.get().addBeforeCommitHook(self._before_commit,
+                                                    (sci, script_name))
+
+            # Execute "activity" scripts
+            for script_name in tdef.activate_script_name:
+              self.activate(activity='SQLQueue')\
+                  .activeScript(script_name, ob.getRelativeUrl(),
+                                status, tdef.id)
 
     def _before_commit(self, sci, script_name):
       # check the object still exists before calling the script



More information about the Erp5-report mailing list