[Erp5-report] r15965 - /erp5/trunk/products/ERP5/Tool/SimulationTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Aug 30 18:36:39 CEST 2007
Author: vincent
Date: Thu Aug 30 18:36:39 2007
New Revision: 15965
URL: http://svn.erp5.org?rev=15965&view=rev
Log:
Enforce _generateKeywordDict's kw parameter as being for related keys.
Add detected missing parameters.
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=15965&r1=15964&r2=15965&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Thu Aug 30 18:36:39 2007
@@ -364,7 +364,8 @@
return self._generateSQLKeywordDictFromKeywordDict(table=table,
sql_kw=sql_kw, new_kw=new_kw)
- def _generateSQLKeywordDictFromKeywordDict(self, table='stock', sql_kw={}, new_kw={}):
+ def _generateSQLKeywordDictFromKeywordDict(self, table='stock', sql_kw={},
+ new_kw={}):
sql_kw = sql_kw.copy()
new_kw = new_kw.copy()
# Some columns cannot be found automatically, prepend table name to
@@ -379,8 +380,12 @@
for key, value in column_value_dict.iteritems():
new_kw['%s.%s' % (table, key)] = value
# Related keys
- related_key_dict = new_kw.pop('related_key_dict', {})
- for key, value in related_key_dict.iteritems():
+ # First, the passthrough (acts as default values)
+ for key, value in new_kw.pop('related_key_dict_passthrough', {})\
+ .iteritems():
+ new_kw[key] = value
+ # Second, calculated values
+ for key, value in new_kw.pop('related_key_dict', {}).iteritems():
new_kw['%s_%s' % (table, key)] = value
# Simulation states matched with input and output omission
def joinQueriesIfNeeded(query_a, query_b, operator):
@@ -440,7 +445,8 @@
variation_text=None, sub_variation_text=None,
variation_category=None,
# uids
- resource_uid=None, node_uid=None, section_uid=None,
+ resource_uid=None, node_uid=None, section_uid=None, payment_uid=None,
+ mirror_node_uid=None, mirror_section_uid=None,
# omit input and output
omit_input=0,
omit_output=0,
@@ -454,6 +460,8 @@
group_by_variation=0,
group_by_movement=0,
group_by_resource=1,
+ # sort_on
+ sort_on=None,
# keywords for related keys
**kw):
"""
@@ -463,12 +471,14 @@
column. If 0, it also used the mirror_date column.
"""
new_kw = {}
- new_kw.update(kw)
sql_kw = {}
# input and output are used by getTrackingList
sql_kw['input'] = input
sql_kw['output'] = output
+ # Add sort_on parameter if defined
+ if sort_on is not None:
+ new_kw['sort_on'] = sort_on
class DictMixIn(dict):
def set(dictionary, key, value):
@@ -506,9 +516,12 @@
column_value_dict['mirror_date'] = {'query': [from_date], 'range': 'nlt'}
column_value_dict.set('resource_uid', resource_uid)
+ column_value_dict.set('payment_uid', payment_uid)
if column_value_dict.set('section_uid', section_uid):
sql_kw['section_filtered'] = 1
column_value_dict.set('node_uid', node_uid)
+ column_value_dict.set('mirror_node_uid', mirror_node_uid)
+ column_value_dict.set('mirror_section_uid', mirror_section_uid)
column_value_dict.setUIDList('resource_uid', resource)
column_value_dict.setUIDList('aggregate_uid', item)
column_value_dict.setUIDList('node_uid', node)
@@ -547,6 +560,7 @@
mirror_section_category_strict_membership)
new_kw['related_key_dict'] = related_key_dict.copy()
+ new_kw['related_key_dict_passthrough'] = kw
#variation_category_uid_list = self._generatePropertyUidList(variation_category)
#if len(variation_category_uid_list) :
More information about the Erp5-report
mailing list