[Erp5-report] r34645 kazuhiko - /erp5/trunk/products/ERP5/Document/BusinessPath.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Apr 19 11:35:26 CEST 2010
Author: kazuhiko
Date: Mon Apr 19 11:35:25 2010
New Revision: 34645
URL: http://svn.erp5.org?rev=34645&view=rev
Log:
cleanup getRelatedSimulationMovementValueList() by reducing iterations.
Modified:
erp5/trunk/products/ERP5/Document/BusinessPath.py
Modified: erp5/trunk/products/ERP5/Document/BusinessPath.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessPath.py?rev=34645&r1=34644&r2=34645&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] Mon Apr 19 11:35:25 2010
@@ -374,22 +374,22 @@
As business sequence is not related to simulation tree need to built
full simulation trees per applied rule
"""
+ portal_catalog = self.getPortalObject().portal_catalog
root_applied_rule_list = []
- delivery_simulation_movement_list = []
- for movement in explanation.getMovementList():
- simulation_movement_list = movement.getDeliveryRelatedValueList(
- portal_type='Simulation Movement')
- if len(simulation_movement_list) == 0: # for legacy simulation hierarchy
- simulation_movement_list = movement.getOrderRelatedValueList(
- portal_type='Simulation Movement')
- delivery_simulation_movement_list.extend(simulation_movement_list)
- for simulation_movement in simulation_movement_list:
- applied_rule = simulation_movement.getRootAppliedRule()
- if applied_rule not in root_applied_rule_list:
- root_applied_rule_list.append(
- simulation_movement.getRootAppliedRule())
-
- simulation_movement_list = self.getPortalObject().portal_catalog(
+ delivery_simulation_movement_list = portal_catalog(
+ delivery_uid=[x.getUid() for x in explanation.getMovementList()])
+ # 'order' category is deprecated. it is kept for compatibility.
+ if len(delivery_simulation_movement_list) == 0:
+ delivery_simulation_movement_list = portal_catalog(
+ order_uid=[x.getUid() for x in explanation.getMovementList()])
+
+ for simulation_movement in delivery_simulation_movement_list:
+ applied_rule = simulation_movement.getRootAppliedRule()
+ if applied_rule not in root_applied_rule_list:
+ root_applied_rule_list.append(
+ simulation_movement.getRootAppliedRule())
+
+ simulation_movement_list = portal_catalog(
portal_type='Simulation Movement', causality_uid=self.getUid(),
path=['%s/%%' % x for x in root_applied_rule_list])
More information about the Erp5-report
mailing list