From af8a821029fa6d4a0f1428980371babcb8db37aa Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Thu, 30 Aug 2007 08:45:29 +0000 Subject: [PATCH] Massive code factorisation. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@15943 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Tool/SimulationTool.py | 149 +++++++++------------------- 1 file changed, 48 insertions(+), 101 deletions(-) diff --git a/product/ERP5/Tool/SimulationTool.py b/product/ERP5/Tool/SimulationTool.py index 58985e4192..530b0e5f4c 100644 --- a/product/ERP5/Tool/SimulationTool.py +++ b/product/ERP5/Tool/SimulationTool.py @@ -470,7 +470,18 @@ class SimulationTool(BaseTool): sql_kw['input'] = input sql_kw['output'] = output - column_value_dict = {} + class DictMixIn(dict): + def set(dictionary, key, value): + result = not(not(value)) + if result: + dictionary[key] = value + return result + + def setUIDList(dictionary, key, value, as_text=0): + uid_list = self._generatePropertyUidList(value, as_text=as_text) + return dictionary.set(key, uid_list) + + column_value_dict = DictMixIn() if omit_mirror_date: date_dict = {'query':[], 'operator':'and'} @@ -494,112 +505,48 @@ class SimulationTool(BaseTool): column_value_dict['date'] = {'query': [to_date], 'range': 'ngt'} column_value_dict['mirror_date'] = {'query': [from_date], 'range': 'nlt'} - if resource_uid is not None : - column_value_dict['resource_uid'] = resource_uid - if section_uid is not None : - column_value_dict['section_uid'] = section_uid + column_value_dict.set('resource_uid', resource_uid) + if column_value_dict.set('section_uid', section_uid): sql_kw['section_filtered'] = 1 - if node_uid is not None : - column_value_dict['node_uid'] = node_uid - - resource_uid_list = self._generatePropertyUidList(resource) - if resource_uid_list: - column_value_dict['resource_uid'] = resource_uid_list - - item_uid_list = self._generatePropertyUidList(item) - if item_uid_list: - column_value_dict['aggregate_uid'] = item_uid_list - - node_uid_list = self._generatePropertyUidList(node) - if node_uid_list: - column_value_dict['node_uid'] = node_uid_list - - payment_uid_list = self._generatePropertyUidList(payment) - if payment_uid_list: - column_value_dict['payment_uid'] = payment_uid_list - - section_uid_list = self._generatePropertyUidList(section) - if section_uid_list: - column_value_dict['section_uid'] = section_uid_list + column_value_dict.set('node_uid', node_uid) + column_value_dict.setUIDList('resource_uid', resource) + column_value_dict.setUIDList('aggregate_uid', item) + column_value_dict.setUIDList('node_uid', node) + column_value_dict.setUIDList('payment_uid', payment) + if column_value_dict.setUIDList('section_uid', section): sql_kw['section_filtered'] = 1 - - mirror_section_uid_list = self._generatePropertyUidList(mirror_section) - if 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: - 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: - column_value_dict['sub_variation_text'] = sub_variation_text_list - - new_kw['column_value_dict'] = column_value_dict - - related_key_dict = {} - + column_value_dict.setUIDList('mirror_section_uid', mirror_section) + column_value_dict.setUIDList('variation_text', variation_text, + as_text=1) + column_value_dict.setUIDList('sub_variation_text', sub_variation_text, + as_text=1) + new_kw['column_value_dict'] = column_value_dict.copy() + + related_key_dict = DictMixIn() # category membership - resource_category_uid_list = self._generatePropertyUidList( - resource_category) - if resource_category_uid_list: - related_key_dict['resource_category_uid'] = resource_category_uid_list - - node_category_uid_list = self._generatePropertyUidList(node_category) - if node_category_uid_list: - related_key_dict['node_category_uid'] = node_category_uid_list - - payment_category_uid_list = self._generatePropertyUidList(payment_category) - if payment_category_uid_list: - related_key_dict['payment_category_uid'] = payment_category_uid_list - - section_category_uid_list = self._generatePropertyUidList(section_category) - if section_category_uid_list: - related_key_dict['section_category_uid'] = section_category_uid_list + related_key_dict.setUIDList('resource_category_uid', resource_category) + related_key_dict.setUIDList('node_category_uid', node_category) + related_key_dict.setUIDList('payment_category_uid', payment_category) + if related_key_dict.setUIDList('section_category_uid', + section_category): sql_kw['section_filtered'] = 1 - - mirror_section_category_uid_list = self._generatePropertyUidList( - mirror_section_category) - if mirror_section_category_uid_list: - related_key_dict['mirror_section_category_uid'] =\ - mirror_section_category_uid_list - + related_key_dict.setUIDList('mirror_section_category_uid', + mirror_section_category) # category strict membership - resource_category_strict_membership_uid_list =\ - self._generatePropertyUidList(resource_category_strict_membership) - if resource_category_strict_membership_uid_list: - related_key_dict['resource_category_strict_membership_uid'] =\ - resource_category_strict_membership_uid_list - - node_category_strict_membership_uid_list =\ - self._generatePropertyUidList(node_category_strict_membership) - if node_category_strict_membership_uid_list: - related_key_dict['node_category_strict_membership_uid'] =\ - node_category_strict_membership_uid_list - - payment_category_strict_membership_uid_list =\ - self._generatePropertyUidList(payment_category_strict_membership) - if payment_category_strict_membership_uid_list: - related_key_dict['payment_category_strict_membership_uid'] =\ - payment_category_strict_membership_uid_list - - section_category_strict_membership_uid_list =\ - self._generatePropertyUidList(section_category_strict_membership) - if section_category_strict_membership_uid_list: - related_key_dict['section_category_strict_membership_uid'] =\ - section_category_strict_membership_uid_list + related_key_dict.setUIDList('resource_category_strict_membership_uid', + resource_category_strict_membership) + related_key_dict.setUIDList('node_category_strict_membership_uid', + node_category_strict_membership) + related_key_dict.setUIDList('payment_category_strict_membership_uid', + payment_category_strict_membership) + if related_key_dict.setUIDList('section_category_strict_membership_uid', + section_category_strict_membership): sql_kw['section_filtered'] = 1 - - mirror_section_category_strict_membership_uid_list =\ - self._generatePropertyUidList( - mirror_section_category_strict_membership) - if mirror_section_category_strict_membership_uid_list: - related_key_dict['mirror_section_category_strict_membership_uid'] =\ - mirror_section_category_strict_membership_uid_list - - new_kw['related_key_dict'] = related_key_dict + related_key_dict.setUIDList( + 'mirror_section_category_strict_membership_uid', + mirror_section_category_strict_membership) + + new_kw['related_key_dict'] = related_key_dict.copy() #variation_category_uid_list = self._generatePropertyUidList(variation_category) #if len(variation_category_uid_list) : -- 2.30.9