[Erp5-report] r15848 - /erp5/trunk/products/ERP5/Tool/SimulationTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Aug 27 17:13:32 CEST 2007


Author: vincent
Date: Mon Aug 27 17:13:32 2007
New Revision: 15848

URL: http://svn.erp5.org?rev=15848&view=rev
Log:
Transmit bare column values instead of pre-formated ones to allow accessing them from python code.

Modified:
    erp5/trunk/products/ERP5/Tool/SimulationTool.py

Modified: erp5/trunk/products/ERP5/Tool/SimulationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SimulationTool.py?rev=15848&r1=15847&r2=15848&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Mon Aug 27 17:13:32 2007
@@ -358,6 +358,9 @@
         group_by = new_kw.pop('group_by', [])
         if len(group_by):
           new_kw['group_by_expression'] = ', '.join(['%s.%s' % (table, x) for x in group_by])
+        column_value_dict = new_kw.pop('column_value_dict', {})
+        for key, value in column_value_dict.iteritems():
+          new_kw['%s.%s' % (table, key)] = value
         sql_kw.update(self.portal_catalog.buildSQLQuery(**new_kw))
         return sql_kw
 
@@ -449,48 +452,51 @@
           operator='AND'))
 
       # Some columns exists on multiple tables, we have to clear ambiguities
+      column_value_dict = {}
       if resource_uid is not None :
-        new_kw[table + '.resource_uid'] = resource_uid
+        column_value_dict['resource_uid'] = resource_uid
       if section_uid is not None :
-        new_kw[table + '.section_uid'] = section_uid
+        column_value_dict['section_uid'] = section_uid
         sql_kw['section_filtered'] = 1
       if node_uid is not None :
-        new_kw[table + '.node_uid'] = node_uid
+        column_value_dict['node_uid'] = node_uid
 
       resource_uid_list = self._generatePropertyUidList(resource)
       if resource_uid_list:
-        new_kw[table + '.resource_uid'] = resource_uid_list
+        column_value_dict['resource_uid'] = resource_uid_list
 
       item_uid_list = self._generatePropertyUidList(item)
       if item_uid_list:
-        new_kw[table + '.aggregate_uid'] = item_uid_list
+        column_value_dict['aggregate_uid'] = item_uid_list
 
       node_uid_list = self._generatePropertyUidList(node)
       if node_uid_list:
-        new_kw[table + '.node_uid'] = node_uid_list
+        column_value_dict['node_uid'] = node_uid_list
 
       payment_uid_list = self._generatePropertyUidList(payment)
       if payment_uid_list:
-        new_kw[table + '.payment_uid'] = payment_uid_list
+        column_value_dict['payment_uid'] = payment_uid_list
 
       section_uid_list = self._generatePropertyUidList(section)
       if section_uid_list:
-        new_kw[table + '.section_uid'] = section_uid_list
+        column_value_dict['section_uid'] = section_uid_list
         sql_kw['section_filtered'] = 1
 
       mirror_section_uid_list = self._generatePropertyUidList(mirror_section)
       if mirror_section_uid_list:
-        new_kw[table + '.mirror_section_uid'] = mirror_section_uid_list
+        column_value_dict['mirror_section_uid'] = mirror_section_uid_list
 
       variation_text_list = self._generatePropertyUidList(variation_text,
                                                           as_text=1)
       if variation_text_list:
-        new_kw[table + '.variation_text'] = variation_text_list
+        column_value_dict['variation_text'] = variation_text_list
 
       sub_variation_text_list = self._generatePropertyUidList(
                                               sub_variation_text, as_text=1)
       if sub_variation_text_list:
-        new_kw[table + '.sub_variation_text'] = sub_variation_text_list
+        column_value_dict['sub_variation_text'] = sub_variation_text_list
+
+      new_kw['column_value_dict'] = column_value_dict
 
       # category membership
       resource_category_uid_list = self._generatePropertyUidList(




More information about the Erp5-report mailing list