[Erp5-report] r35976 nicolas.dumazet - /erp5/trunk/products/ERP5/Document/SupplyChain.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Jun 4 05:15:23 CEST 2010


Author: nicolas.dumazet
Date: Fri Jun  4 05:15:22 2010
New Revision: 35976

URL: http://svn.erp5.org?rev=35976&view=rev
Log:
one iteration over supply_link_list instead of three list comprehensions

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

Modified: erp5/trunk/products/ERP5/Document/SupplyChain.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SupplyChain.py?rev=35976&r1=35975&r2=35976&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SupplyChain.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SupplyChain.py [utf8] Fri Jun  4 05:15:22 2010
@@ -140,28 +140,29 @@
     """
       Return the previous SupplyLink  list.
     """
-    if current_supply_link is not None:
+    if current_supply_link is None:
+      # No current_supply_link defined, we need to return the last SupplyLink
+      return [self.getLastLink()]
+    else:
       # Get all SupplyLink in the SupplyChain
       supply_link_list = self.objectValues(
                                  portal_type=self.supply_link_portal_type)
       # Destination of valid link must be the source of the current link.
       current_node_value = current_supply_link.getCurrentNodeValue()
-      previous_supply_link_list = [
-                                 x for x in supply_link_list if\
-                                 x.getNextNodeValue() == current_node_value]
-      # Prevent infinite loop
-      if current_supply_link in previous_supply_link_list:
-        previous_supply_link_list.remove(current_supply_link)
-      # Get only production node in the list, or return the entire list
-      previous_production_list = [x for x in previous_supply_link_list\
-                                  if x.isProductionSupplyLink()]
+
+      previous_supply_link_list = []
+      previous_production_list = []
+      for supply_link in supply_link_list:
+        if supply_link != current_supply_link and \
+          supply_link.getNextNodeValue() == current_node_value:
+          previous_supply_link_list.append(supply_link)
+          if supply_link.isProductionSupplyLink():
+            previous_production_list.append(supply_link)
+
       if previous_production_list != []:
         previous_supply_link_list = previous_production_list
-    else:
-      # No current_supply_link defined, we need to return the last SupplyLink
-      previous_supply_link_list = [self.getLastLink()]
-    # Return result
-    return previous_supply_link_list
+
+      return previous_supply_link_list
 
   security.declareProtected(Permissions.View,
                             'getPreviousProductionSupplyLinkList')




More information about the Erp5-report mailing list