[Erp5-report] r35482 kazuhiko - /erp5/trunk/products/ERP5/Document/Delivery.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu May 20 13:54:47 CEST 2010


Author: kazuhiko
Date: Thu May 20 13:54:45 2010
New Revision: 35482

URL: http://svn.erp5.org?rev=35482&view=rev
Log:
code cleanup and improve the performance.

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

Modified: erp5/trunk/products/ERP5/Document/Delivery.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Delivery.py?rev=35482&r1=35481&r2=35482&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Delivery.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Delivery.py [utf8] Thu May 20 13:54:45 2010
@@ -311,17 +311,9 @@
 
     def applyToDeliveryRelatedMovement(self, portal_type='Simulation Movement',
                                        method_id='expand', **kw):
-      for my_simulation_movement in self.getDeliveryRelatedValueList(
-                                      portal_type = 'Simulation Movement'):
+      for simulation_movement in self._getAllRelatedSimulationMovementList():
         # And apply
-        getattr(my_simulation_movement.getObject(), method_id)(**kw)
-
-      for m in self.getMovementList():
-        # Find related in simulation
-        for my_simulation_movement in m.getDeliveryRelatedValueList(
-                                  portal_type = 'Simulation Movement'):
-          # And apply
-          getattr(my_simulation_movement.getObject(), method_id)(**kw)
+        getattr(simulation_movement.getObject(), method_id)(**kw)
 
     #######################################################
     # Causality computation
@@ -819,16 +811,12 @@
       if excluded_rule_path_list is None:
         excluded_rule_path_list = []
       to_expand_list = []
-      # we might use a zsql method, because it can be very slow
-      for m in self.getMovementList():
-        if m.isSimulated():
-          sim_movement_list = m.getDeliveryRelatedValueList()
-          for sim_movement in sim_movement_list:
-            if sim_movement.getRootAppliedRule().getPath() \
-                not in excluded_rule_path_list:
-              parent_value = sim_movement.getParentValue()
-              if parent_value not in to_expand_list:
-                to_expand_list.append(parent_value)
+      for sim_movement in self._getAllRelatedSimulationMovementList():
+        if sim_movement.getRootAppliedRule().getPath() \
+            not in excluded_rule_path_list:
+          parent_value = sim_movement.getParentValue()
+          if parent_value not in to_expand_list:
+            to_expand_list.append(parent_value)
       for rule in to_expand_list:
         rule.expand(activate_kw=activate_kw,**kw)
         rule.recursiveReindexObject(activate_kw=activate_kw)
@@ -965,3 +953,15 @@
               simulation_movement.getRelativeUrl())
 
       return disconnected_simulation_movement_list
+
+    def _getAllRelatedSimulationMovementList(self, **kw):
+      search_method = \
+          self.getPortalObject().portal_catalog.unrestrictedSearchResults
+      movement_uid_list = [x.getUid() for x in self.getMovementList()]
+      sim_movement_list = search_method(portal_type='Simulation Movement',
+                                        delivery_uid=movement_uid_list, **kw)
+      if len(sim_movement_list) == 0:
+        # 'order' category is deprecated. it is kept for compatibility.
+        sim_movement_list = search_method(portal_type='Simulation Movement',
+                                          order_uid=movement_uid_list, **kw)
+      return sim_movement_list




More information about the Erp5-report mailing list