[Erp5-report] r10666 - /erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 11 16:10:00 CEST 2006


Author: bartek
Date: Wed Oct 11 16:09:59 2006
New Revision: 10666

URL: http://svn.erp5.org?rev=10666&view=rev
Log:
Changed use of caching - the previous version was really dumb...

Modified:
    erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMSBaseCategoryHash.xml

Modified: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMSBaseCategoryHash.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMSBaseCategoryHash.xml?rev=10666&r1=10665&r2=10666&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMSBaseCategoryHash.xml (original)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMSBaseCategoryHash.xml Wed Oct 11 16:09:59 2006
@@ -70,30 +70,34 @@
             <key> <string>_body</string> </key>
             <value> <string>from Products.ERP5Type.Cache import CachingMethod\n
 \n
-def cached_DMSBaseCategoryHash(item_list,value_list,default_sub_field_property_dict,is_right_display):\n
-  if default_sub_field_property_dict is None:\n
-    default_sub_field_property_dict={\'field_type\': \'MultiListField\', \'item_list\': [], \'required\': 0, \'value\': [], \'is_right_display\': 0, \'key\': \'default\', \'title\': \'Categories\', \'size\': 5}\n
+def cached_DMSGetItemList(base_category):\n
+    basecatobject=context.portal_categories.resolveCategory(base_category)\n
+    return [(context.Base_trimPathName(x,100),y) for x,y in basecatobject.getCategoryChildLogicalPathItemList()]\n
 \n
-  sub_field_dict={}\n
-  maximum_list_size=5\n
+cached_DMSGetItemList=CachingMethod(cached_DMSGetItemList,id=\'DMGetItemListCachedMethodWhatever\')\n
 \n
-  default_sub_field_property_dict[\'field_type\']=\'ListField\'\n
-  default_sub_field_property_dict[\'size\']=1\n
+if default_sub_field_property_dict is None:\n
+  default_sub_field_property_dict={\'field_type\': \'MultiListField\', \'item_list\': [], \'required\': 0, \'value\': [], \'is_right_display\': 0, \'key\': \'default\', \'title\': \'Categories\', \'size\': 5}\n
 \n
-  for base_category in item_list:\n
-    if not sub_field_dict.has_key(base_category):\n
-      basecatobject=context.portal_categories.resolveCategory(base_category)\n
-      sub_field_property_dict=default_sub_field_property_dict.copy()\n
-      sub_field_property_dict[\'key\']=base_category\n
-      sub_field_property_dict[\'title\']=basecatobject.getTranslatedTitle()\n
-      sub_field_property_dict[\'item_list\']=[(context.Base_trimPathName(x,100),y) for x,y in basecatobject.getCategoryChildLogicalPathItemList()]\n
-      sub_field_property_dict[\'value\']=context.aq_parent.aq_parent.getProperty(base_category)\n
-      \n
-      sub_field_dict[base_category]=sub_field_property_dict\n
+sub_field_dict={}\n
+maximum_list_size=5\n
 \n
-  return sub_field_dict.values()\n
-cached_DMSBaseCategoryHash=CachingMethod(cached_DMSBaseCategoryHash,id=\'DMSParallelListField_DMSBaseCategoryHash\')\n
-return cached_DMSBaseCategoryHash(item_list,value_list,default_sub_field_property_dict,is_right_display)\n
+default_sub_field_property_dict[\'field_type\']=\'ListField\'\n
+default_sub_field_property_dict[\'size\']=1\n
+\n
+for base_category in item_list:\n
+  if not sub_field_dict.has_key(base_category):\n
+    basecatobject=context.portal_categories.resolveCategory(base_category)\n
+    sub_field_property_dict=default_sub_field_property_dict.copy()\n
+    sub_field_property_dict[\'key\']=base_category\n
+    sub_field_property_dict[\'title\']=basecatobject.getTranslatedTitle()\n
+    # we cache this, so that we can apply expensive path processing techniques\n
+    sub_field_property_dict[\'item_list\']=cached_DMSGetItemList(base_category)\n
+    sub_field_property_dict[\'value\']=context.aq_parent.aq_parent.getProperty(base_category)\n
+    \n
+    sub_field_dict[base_category]=sub_field_property_dict\n
+\n
+return sub_field_dict.values()\n
 \n
 \n
 # vim: syntax=python shiftwidth=2\n
@@ -145,7 +149,17 @@
                             <string>is_right_display</string>
                             <string>Products.ERP5Type.Cache</string>
                             <string>CachingMethod</string>
-                            <string>cached_DMSBaseCategoryHash</string>
+                            <string>cached_DMSGetItemList</string>
+                            <string>None</string>
+                            <string>sub_field_dict</string>
+                            <string>maximum_list_size</string>
+                            <string>_write_</string>
+                            <string>_getiter_</string>
+                            <string>base_category</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>basecatobject</string>
+                            <string>sub_field_property_dict</string>
                           </tuple>
                         </value>
                     </item>




More information about the Erp5-report mailing list