[Erp5-report] r38158 yo - /erp5/trunk/products/ERP5/Document/OrderBuilder.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Sep 7 07:22:38 CEST 2010


Author: yo
Date: Tue Sep  7 07:22:37 2010
New Revision: 38158

URL: http://svn.erp5.org?rev=38158&view=rev
Log:
Clean up the code.

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

Modified: erp5/trunk/products/ERP5/Document/OrderBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderBuilder.py?rev=38158&r1=38157&r2=38158&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] Tue Sep  7 07:22:37 2010
@@ -716,19 +716,32 @@ class OrderBuilder(XMLObject, Amount, Pr
     """
     Return a list of movement groups sorted by collect order group and index.
     """
-    category_index_dict = {}
-    for i in self.getPortalObject().portal_categories.collect_order_group.contentValues():
-      category_index_dict[i.getId()] = i.getIntIndex()
-
-    def sort_movement_group(a, b):
-        return cmp(category_index_dict.get(a.getCollectOrderGroup()),
-                   category_index_dict.get(b.getCollectOrderGroup())) or \
-               cmp(a.getIntIndex(), b.getIntIndex())
+    portal = self.getPortalObject()
     if portal_type is None:
-      portal_type = self.getPortalMovementGroupTypeList()
-    movement_group_list = [x for x in self.contentValues(filter={'portal_type': portal_type}) \
-                           if collect_order_group is None or collect_order_group == x.getCollectOrderGroup()]
-    return sorted(movement_group_list, sort_movement_group)
+      portal_type = portal.getPortalMovementGroupTypeList()
+
+    if collect_order_group is None:
+      category_index_dict = {}
+      for i in portal.portal_categories.collect_order_group.contentValues():
+        category_index_dict[i.getId()] = i.getIntIndex()
+
+      def getMovementGroupKey(movement_group):
+        return (category_index_dict.get(movement_group.getCollectOrderGroup()),
+                movement_group.getIntIndex())
+
+      filter_dict = dict(portal_type=portal_type)
+      movement_group_list = self.contentValues(filter=filter_dict)
+    else:
+      def getMovementGroupKey(movement_group):
+        return movement_group.getIntIndex()
+
+      filter_dict = dict(portal_type=portal_type)
+      movement_group_list = []
+      for movement_group in self.contentValues(filter=filter_dict):
+        if movement_group.getCollectOrderGroup() == collect_order_group:
+          movement_group_list.append(movement_group)
+
+    return sorted(movement_group_list, key=getMovementGroupKey)
 
   # XXX category name is hardcoded.
   def getDeliveryMovementGroupList(self, **kw):




More information about the Erp5-report mailing list