[Erp5-report] r35735 jm - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri May 28 15:58:07 CEST 2010


Author: jm
Date: Fri May 28 15:58:01 2010
New Revision: 35735

URL: http://svn.erp5.org?rev=35735&view=rev
Log:
Optimize reordering of skin selection

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

Modified: erp5/trunk/products/ERP5/Document/BusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessTemplate.py?rev=35735&r1=35734&r2=35735&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Fri May 28 15:58:01 2010
@@ -218,6 +218,13 @@
   if isinstance(skin_selection_list, basestring):
     skin_selection_list = skin_selection_list.split()
 
+  def skin_sort_key(skin_folder_id):
+    obj = skin_tool._getOb(skin_folder_id, None)
+    if obj is None:
+      return 0, skin_folder_id
+    return -obj.getProperty('business_template_skin_layer_priority',
+      obj.meta_type == 'Filesystem Directory View' and -1 or 0), skin_folder_id
+
   for skin_name in skin_selection_list:
 
     if (skin_name not in skin_tool.getSkinSelections()) and \
@@ -231,12 +238,8 @@
     if (skin_folder_id not in selection_list):
       selection_list.insert(0, skin_folder_id)
     if reorder_skin_selection:
-      # Sort by skin ID
-      selection_list.sort()
-      # Sort by skin priority
-      selection_list.sort(
-        key=lambda x: x in skin_tool.objectIds() and skin_tool[x].getProperty(
-        'business_template_skin_layer_priority', skin_tool[x].meta_type == 'Filesystem Directory View' and -1 or 0) or 0, reverse=True)
+      # Sort by skin priority and ID
+      selection_list.sort(key=skin_sort_key)
     if (skin_name in skin_layer_list):
       skin_tool.manage_skinLayers(skinpath=selection_list,
                                   skinname=skin_name, add_skin=1)




More information about the Erp5-report mailing list