From 82617884de6a3e2cfaeae36b337cb562c312b519 Mon Sep 17 00:00:00 2001
From: Julien Muchembled <jm@nexedi.com>
Date: Mon, 8 Feb 2010 22:34:34 +0000
Subject: [PATCH] Update catalog filters to take advantage of last
 optimisations in ZSQLCatalog

* Use 'context' instead of 'here'.
* Use 'portal_type' as expression cache key.
* Use is.*Type accessors.

This commit requires [32324].

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@32337 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../z0_uncatalog_inventory.catalog_keys.xml                 | 5 +++--
 .../z0_uncatalog_inventory_stock.catalog_keys.xml           | 5 +++--
 .../z0_uncatalog_versioning.catalog_keys.xml                | 5 +++--
 .../erp5_mysql_innodb/z_catalog_alarm_list.catalog_keys.xml | 6 +++---
 .../z_catalog_delivery_list.catalog_keys.xml                | 5 +++--
 .../erp5_mysql_innodb/z_catalog_item_list.catalog_keys.xml  | 5 +++--
 .../z_catalog_measure_list.catalog_keys.xml                 | 5 +++--
 .../z_catalog_movement_category_list.catalog_keys.xml       | 5 +++--
 .../z_catalog_movement_list.catalog_keys.xml                | 5 +++--
 .../z_catalog_non_movement_category_list.catalog_keys.xml   | 5 +++--
 .../z_catalog_predicate_category_list.catalog_keys.xml      | 5 +++--
 .../z_catalog_predicate_list.catalog_keys.xml               | 5 +++--
 ...z_catalog_quantity_unit_conversion_list.catalog_keys.xml | 5 +++--
 .../erp5_mysql_innodb/z_catalog_stock_list.catalog_keys.xml | 5 +++--
 .../erp5_mysql_innodb/z_catalog_stock_list.xml              | 6 +++---
 .../z_catalog_versioning_list.catalog_keys.xml              | 5 +++--
 .../ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision    | 2 +-
 17 files changed, 49 insertions(+), 35 deletions(-)

diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory.catalog_keys.xml
index 81f21c9cb1..9c3eb4f2db 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: isInventory</value>
+  <value>python: context.isInventory()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory_stock.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory_stock.catalog_keys.xml
index 1468ef2a8b..3d6f58bbcc 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory_stock.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_inventory_stock.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: isInventoryMovement</value>
+  <value>python: context.isInventoryMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_versioning.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_versioning.catalog_keys.xml
index c9e2f50928..290bd35544 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_versioning.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_uncatalog_versioning.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python:getattr(here, 'getVersion', None) is not None</value>
+  <value>python: getattr(context, 'getVersion', None) is not None</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_alarm_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_alarm_list.catalog_keys.xml
index f8f14c5981..1a3eac3d4a 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_alarm_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_alarm_list.catalog_keys.xml
@@ -6,9 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value></value>
+  <value>python: context.isAlarmType()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
-  <value>Alarm</value>
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_delivery_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_delivery_list.catalog_keys.xml
index e681f972db..0024727e08 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_delivery_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_delivery_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: isDelivery</value>
+  <value>python: context.isDelivery()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_item_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_item_list.catalog_keys.xml
index cef8023f0d..d471b5478e 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_item_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_item_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.providesIMovement()</value>
+  <value>python: context.providesIMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_measure_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_measure_list.catalog_keys.xml
index e87180826b..270dfc2ace 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_measure_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_measure_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.getPortalType() in here.getPortalResourceTypeList()</value>
+  <value>python: context.isResourceType()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_category_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_category_list.catalog_keys.xml
index cef8023f0d..d471b5478e 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_category_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_category_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.providesIMovement()</value>
+  <value>python: context.providesIMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_list.catalog_keys.xml
index cef8023f0d..d471b5478e 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_movement_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.providesIMovement()</value>
+  <value>python: context.providesIMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_non_movement_category_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_non_movement_category_list.catalog_keys.xml
index e61491cc19..89e219bb2b 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_non_movement_category_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_non_movement_category_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: not here.providesIMovement()</value>
+  <value>python: not context.providesIMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_category_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_category_list.catalog_keys.xml
index fa7f98572e..dc0b82f15d 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_category_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_category_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: isPredicate</value>
+  <value>python: context.isPredicate()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_list.catalog_keys.xml
index fa7f98572e..dc0b82f15d 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_predicate_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: isPredicate</value>
+  <value>python: context.isPredicate()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_quantity_unit_conversion_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_quantity_unit_conversion_list.catalog_keys.xml
index e87180826b..270dfc2ace 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_quantity_unit_conversion_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_quantity_unit_conversion_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.getPortalType() in here.getPortalResourceTypeList()</value>
+  <value>python: context.isResourceType()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.catalog_keys.xml
index 1c0ffbea01..4b6a7c24c6 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python: here.providesIMovement() and not isInventoryMovement</value>
+  <value>python: context.providesIMovement() and not context.isInventoryMovement()</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.xml
index 08a5fe92a3..0718647b4a 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_stock_list.xml
@@ -150,19 +150,19 @@
                                 </value>
                             </item>
                             <item>
-                                <key> <string>isInventoryMovement</string> </key>
+                                <key> <string>isCancellationAmount</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>isMovement</string> </key>
+                                <key> <string>isInventoryMovement</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>isCancellationAmount</string> </key>
+                                <key> <string>isMovement</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.catalog_keys.xml
index 333f8d7e55..9f05911814 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.catalog_keys.xml
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_versioning_list.catalog_keys.xml
@@ -6,8 +6,9 @@
   <value>1</value>
  </item>
  <item key="_filter_expression_archive" type="str">
-  <value>python:getattr(here, 'getVersion', None) is not None</value>
+  <value>python: getattr(context, 'getVersion', None) is not None</value>
  </item>
- <item key="_filter_type_archive" type="tuple">
+ <item key="_filter_expression_cache_key_archive" type="tuple">
+  <value>portal_type</value>
  </item>
 </catalog_method>
\ No newline at end of file
diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision
index 89a16a7ddc..7b27b25197 100644
--- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision
+++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision
@@ -1 +1 @@
-172
\ No newline at end of file
+173
\ No newline at end of file
-- 
2.30.9