[Erp5-report] r32451 kazuhiko - /erp5/trunk/products/ERP5/Document/Rule.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Feb 12 01:26:16 CET 2010


Author: kazuhiko
Date: Fri Feb 12 01:26:15 2010
New Revision: 32451

URL: http://svn.erp5.org?rev=32451&view=rev
Log:
make the common part working for non-BPM case.

Modified:
    erp5/trunk/products/ERP5/Document/Rule.py

Modified: erp5/trunk/products/ERP5/Document/Rule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Rule.py?rev=32451&r1=32450&r2=32451&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Rule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Rule.py [utf8] Fri Feb 12 01:26:15 2010
@@ -130,7 +130,7 @@
       return False
     return Predicate.test(self, *args, **kw)
 
-  def _expandBPM(self, applied_rule, force=0, **kw):
+  def _expand(self, applied_rule, force=0, **kw):
     """Generic expand with helpers.
     Do NOT overload, use helpers."""
     add_list, modify_dict, \
@@ -162,7 +162,7 @@
       is expanded.
     """
     if self._isBPM():
-      return self._expandBPM(applied_rule, **kw)
+      return self._expand(applied_rule, **kw)
     for o in applied_rule.objectValues():
       o.expand(**kw)
 
@@ -310,10 +310,14 @@
     """Returns list of tuples (movement, business_path)"""
     input_movement_list = self._getInputMovementList(applied_rule)
     business_process = applied_rule.getBusinessProcessValue()
+    trade_phase_list = self.getTradePhaseList()
+
+    # In non-BPM case, we have no business path.
+    if business_process is None or len(trade_phase_list) == 0:
+      return [(input_movement, None) for input_movement in input_movement_list]
 
     input_movement_and_path_list = []
     business_path_list = []
-    trade_phase_list = self.getTradePhaseList()
     for input_movement in input_movement_list:
       for business_path in business_process.getPathValueList(
                           trade_phase_list,
@@ -537,6 +541,13 @@
     for prop in default_property_list:
       property_dict[prop] = movement.getProperty(prop)
 
+    # rule specific
+    property_dict.update(**self._getExpandablePropertyUpdateDict(applied_rule,
+      movement, business_path, property_dict))
+
+    if business_path is None:
+      return property_dict
+
     # Arrow
     for base_category in \
         business_path.getSourceArrowBaseCategoryList() +\
@@ -573,10 +584,6 @@
       property_dict['start_date'] = movement.getStartDate()
       property_dict['stop_date'] = movement.getStopDate()
 
-    # rule specific
-    property_dict.update(**self._getExpandablePropertyUpdateDict(applied_rule,
-      movement, business_path, property_dict))
-
     # save a relation to business path
     property_dict['causality_list'] = [business_path.getRelativeUrl()]
 




More information about the Erp5-report mailing list