[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