From 6e8370522438d2381c1f49d0771de1bba6364012 Mon Sep 17 00:00:00 2001 From: Kazuhiko Shiozaki <kazuhiko@nexedi.com> Date: Mon, 14 Jun 2010 12:14:43 +0000 Subject: [PATCH] * Index portal_type in translation table to avoid unexpected verbose results of translated state search. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@36306 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../ERP5Site_updateTranslationTable.xml | 114 +++++++++--------- .../ERP5/bootstrap/erp5_core/bt/change_log | 3 + product/ERP5/bootstrap/erp5_core/bt/revision | 2 +- .../erp5_mysql_innodb/z0_drop_translation.xml | 6 + .../z_catalog_translation_list.xml | 10 ++ .../z_create_translation.xml | 14 ++- .../z_related_translated_causality_state.xml | 2 + ...lated_translated_causality_state_title.xml | 2 + ...z_related_translated_opportunity_state.xml | 2 + ...ted_translated_opportunity_state_title.xml | 2 + .../z_related_translated_simulation_state.xml | 2 + ...ated_translated_simulation_state_title.xml | 8 +- .../z_related_translated_validation_state.xml | 2 + ...ated_translated_validation_state_title.xml | 2 + .../erp5_mysql_innodb_catalog/bt/change_log | 3 + .../erp5_mysql_innodb_catalog/bt/revision | 2 +- product/ERP5Type/patches/WorkflowTool.py | 11 ++ 17 files changed, 125 insertions(+), 62 deletions(-) diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.xml index 89e1d7ae45..f5bc83b6c8 100644 --- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.xml +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/ERP5Site_updateTranslationTable.xml @@ -53,73 +53,72 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>from Products.ERP5Type.Document import newTempBase\n -from Products.ERP5Type.Utils import getMessageIdWithContext\n + <value> <string>from Products.ERP5Type.Utils import getMessageIdWithContext\n \n supported_languages = context.Localizer.get_supported_languages()\n translated_keys = {} # This dict prevents entering the same key twice\n \n -context.portal_catalog.deleteTranslationList(sql_catalog_id=sql_catalog_id)\n +sql_catalog = context.portal_catalog.getSQLCatalog(sql_catalog_id)\n +sql_catalog.z0_drop_translation()\n +sql_catalog.z_create_translation()\n \n -i = 0\n +z_catalog_translation_list = sql_catalog.z_catalog_translation_list\n +def catalog_translation_list(object_list):\n + parameter_dict = {}\n + for i in object_list:\n + for property in (\'language\', \'message_context\', \'portal_type\',\n + \'original_message\', \'translated_message\'):\n + parameter_dict.setdefault(property, []).append(i[property])\n + z_catalog_translation_list(**parameter_dict)\n \n # Translate every workflow state in the context of the state variable\n -for wf in context.portal_workflow.objectValues():\n - object_list = []\n +object_list = []\n +portal_workflow = context.portal_workflow\n +for wf_id, portal_type_list in portal_workflow.getChainDict().items():\n + wf = getattr(portal_workflow, wf_id, None)\n + if wf is None:\n + continue\n state_var = wf.variables.getStateVar()\n if wf.states:\n for state_id, state in wf.states.items():\n for lang in supported_languages:\n - key = (lang, state_var, state_id)\n - if not translated_keys.has_key(key):\n - translated_keys[key] = None # mark as translated\n - obj = newTempBase(context, \'temp_translation_%d\' % i,\n - language=lang, message_context=state_var, original_message=state_id,\n - translated_message = context.Localizer.erp5_ui.gettext(state_id, lang=lang).encode(\'utf-8\'))\n - obj.setUid(\'temp_%d\' % i)\n - i += 1\n - object_list.append(obj)\n -\n - # translate state title as well\n - if state.title != \'\' :\n - state_var_title = \'%s_title\' % state_var\n - msg_id = getMessageIdWithContext(state.title, \'state\', wf.id)\n - translated_message = context.Localizer.erp5_ui.gettext(msg_id, default=\'\', lang=lang).encode(\'utf-8\')\n - if translated_message == \'\':\n - msg_id = state.title\n - translated_message = context.Localizer.erp5_ui.gettext(state.title.decode(\'utf-8\'), lang=lang).encode(\'utf-8\')\n - key = (lang, state_var_title, state_id, msg_id)\n + for portal_type in portal_type_list:\n + key = (lang, portal_type, state_var, state_id)\n if not translated_keys.has_key(key):\n + translated_message = context.Localizer.erp5_ui.gettext(state_id, lang=lang).encode(\'utf-8\')\n translated_keys[key] = None # mark as translated\n - obj = newTempBase(context, \'temp_translation_%d\' % i,\n - language=lang, message_context=state_var_title,\n - original_message = state_id, translated_message = translated_message )\n - obj.setUid(\'temp_%d\' % i)\n - i += 1\n - object_list.append(obj)\n + object_list.append(dict(language=lang, message_context=state_var, portal_type=portal_type, original_message=state_id,\n + translated_message=translated_message))\n \n - if object_list:\n - context.portal_catalog.catalogTranslationList(object_list, sql_catalog_id=sql_catalog_id)\n + # translate state title as well\n + if state.title != \'\' :\n + state_var_title = \'%s_title\' % state_var\n + msg_id = getMessageIdWithContext(state.title, \'state\', wf.id)\n + translated_message = context.Localizer.erp5_ui.gettext(msg_id, default=\'\', lang=lang).encode(\'utf-8\')\n + if translated_message == \'\':\n + msg_id = state.title\n + translated_message = context.Localizer.erp5_ui.gettext(state.title.decode(\'utf-8\'), lang=lang).encode(\'utf-8\')\n + key = (lang, portal_type, state_var_title, state_id, msg_id)\n + if not translated_keys.has_key(key):\n + translated_keys[key] = None # mark as translated\n + object_list.append(dict(language=lang, message_context=state_var_title, portal_type=portal_type, original_message=state_id,\n + translated_message=translated_message))\n +if object_list:\n + catalog_translation_list(object_list)\n \n # Translate every portal type in the context of the portal type\n +object_list = []\n for ptype in context.portal_types.objectValues():\n - title = ptype.title\n - if not title: title = ptype.id\n - object_list = []\n + portal_type = ptype.title\n + if not portal_type: portal_type = ptype.id\n for lang in supported_languages:\n - key = (lang, \'portal_type\', title)\n + key = (lang, \'portal_type\', portal_type)\n if not translated_keys.has_key(key):\n translated_keys[key] = None # mark as translated\n - obj = newTempBase(context, \'temp_translation_%d\' % i,\n - language=lang, message_context="portal_type",\n - original_message = title,\n - translated_message = context.Localizer.erp5_ui.gettext(title, lang=lang).encode(\'utf-8\'))\n - obj.setUid(\'temp_%d\' % i)\n - i += 1\n - object_list.append(obj)\n -\n - if object_list:\n - context.portal_catalog.catalogTranslationList(object_list, sql_catalog_id=sql_catalog_id)\n + object_list.append(dict(language=lang, message_context=\'portal_type\', portal_type=portal_type, original_message=portal_type,\n + translated_message=context.Localizer.erp5_ui.gettext(portal_type, lang=lang).encode(\'utf-8\')))\n +if object_list:\n + catalog_translation_list(object_list)\n \n print \'Done\'\n return printed\n @@ -162,32 +161,35 @@ return printed\n <string>sql_catalog_id</string> <string>_print_</string> <string>_print</string> - <string>Products.ERP5Type.Document</string> - <string>newTempBase</string> <string>Products.ERP5Type.Utils</string> <string>getMessageIdWithContext</string> <string>_getattr_</string> <string>context</string> <string>supported_languages</string> <string>translated_keys</string> - <string>i</string> + <string>sql_catalog</string> + <string>z_catalog_translation_list</string> + <string>catalog_translation_list</string> + <string>object_list</string> + <string>portal_workflow</string> <string>_getiter_</string> + <string>wf_id</string> + <string>portal_type_list</string> + <string>getattr</string> + <string>None</string> <string>wf</string> - <string>object_list</string> <string>state_var</string> <string>state_id</string> <string>state</string> <string>lang</string> + <string>portal_type</string> <string>key</string> - <string>None</string> + <string>translated_message</string> <string>_write_</string> - <string>obj</string> - <string>_inplacevar_</string> + <string>dict</string> <string>state_var_title</string> <string>msg_id</string> - <string>translated_message</string> <string>ptype</string> - <string>title</string> </tuple> </value> </item> diff --git a/product/ERP5/bootstrap/erp5_core/bt/change_log b/product/ERP5/bootstrap/erp5_core/bt/change_log index b1ad84b1a3..d12ea92019 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/change_log +++ b/product/ERP5/bootstrap/erp5_core/bt/change_log @@ -1,3 +1,6 @@ +2010-06-14 Kazuhiko +* Index portal_type in translation table to avoid unexpected verbose results of translated state search. + 2010-06-09 yusei * Fix a typo in CategoryTool_getPreferredPredicateCategoryParentUidItemList. diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision index 85cbb90ccd..0eb5c3a217 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/revision +++ b/product/ERP5/bootstrap/erp5_core/bt/revision @@ -1 +1 @@ -1612 \ No newline at end of file +1613 \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_translation.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_translation.xml index dea5625061..8e7aa4ffd4 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_translation.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z0_drop_translation.xml @@ -36,6 +36,12 @@ </object> </value> </item> + <item> + <key> <string>_col</string> </key> + <value> + <tuple/> + </value> + </item> <item> <key> <string>allow_simple_one_argument_traversal</string> </key> <value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_translation_list.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_translation_list.xml index de7602ea71..273447446c 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_translation_list.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_catalog_translation_list.xml @@ -41,6 +41,12 @@ <dictionary/> </value> </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <dictionary/> + </value> + </item> <item> <key> <string>translated_message</string> </key> <value> @@ -56,6 +62,7 @@ <list> <string>language</string> <string>message_context</string> + <string>portal_type</string> <string>original_message</string> <string>translated_message</string> </list> @@ -76,6 +83,7 @@ <key> <string>arguments_src</string> </key> <value> <string>language\r\n message_context\r\n +portal_type\r\n original_message\r\n translated_message</string> </value> </item> @@ -122,6 +130,7 @@ INSERT INTO translation VALUES \n (\n <dtml-sqlvar expr="language[loop_item]" type="string">,\n <dtml-sqlvar expr="message_context[loop_item]" type="string">,\n + <dtml-sqlvar expr="portal_type[loop_item]" type="string">,\n <dtml-sqlvar expr="original_message[loop_item]" type="string">,\n <dtml-sqlvar expr="translated_message[loop_item]" type="string">\n )\n @@ -172,6 +181,7 @@ INSERT INTO translation VALUES \n (\n <dtml-sqlvar expr="language[loop_item]" type="string">,\n <dtml-sqlvar expr="message_context[loop_item]" type="string">,\n + <dtml-sqlvar expr="portal_type[loop_item]" type="string">,\n <dtml-sqlvar expr="original_message[loop_item]" type="string">,\n <dtml-sqlvar expr="translated_message[loop_item]" type="string">\n )\n diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_translation.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_translation.xml index 7843e9541c..fefff3cecc 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_translation.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_create_translation.xml @@ -36,6 +36,12 @@ </object> </value> </item> + <item> + <key> <string>_col</string> </key> + <value> + <tuple/> + </value> + </item> <item> <key> <string>allow_simple_one_argument_traversal</string> </key> <value> @@ -85,10 +91,12 @@ <value> <string>CREATE TABLE translation (\n language VARCHAR(255),\n message_context VARCHAR(50),\n + portal_type VARCHAR(255),\n original_message VARCHAR(255),\n translated_message VARCHAR(255),\n KEY `message` (`translated_message`),\n - KEY `original_message` (`original_message`)\n + KEY `original_message` (`original_message`),\n + KEY `portal_type` (`portal_type`)\n ) TYPE=InnoDB;\n </string> </value> </item> @@ -129,10 +137,12 @@ <value> <string>CREATE TABLE translation (\n language VARCHAR(255),\n message_context VARCHAR(50),\n + portal_type VARCHAR(255),\n original_message VARCHAR(255),\n translated_message VARCHAR(255),\n KEY `message` (`translated_message`),\n - KEY `original_message` (`original_message`)\n + KEY `original_message` (`original_message`),\n + KEY `portal_type` (`portal_type`)\n ) TYPE=InnoDB;\n </string> </value> </item> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state.xml index d0b3855bda..42ea7f9e2a 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.causality_state\n AND <dtml-var table_0>.message_context = "causality_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> @@ -137,6 +138,7 @@ <dtml-var table_0>.original_message = catalog.causality_state\n AND <dtml-var table_0>.message_context = "causality_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state_title.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state_title.xml index 4f3ce4c363..bf97f33ab8 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state_title.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_causality_state_title.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.causality_state\n AND <dtml-var table_0>.message_context = "causality_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> @@ -137,6 +138,7 @@ <dtml-var table_0>.original_message = catalog.causality_state\n AND <dtml-var table_0>.message_context = "causality_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state.xml index 5e753ee438..95bfa8c6d4 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.opportunity_state\n AND <dtml-var table_0>.message_context = "opportunity_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n @@ -138,6 +139,7 @@ <dtml-var table_0>.original_message = catalog.opportunity_state\n AND <dtml-var table_0>.message_context = "opportunity_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state_title.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state_title.xml index 5d1bd9fdd8..2dc1bd2bf1 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state_title.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_opportunity_state_title.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.opportunity_state\n AND <dtml-var table_0>.message_context = "opportunity_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n @@ -138,6 +139,7 @@ <dtml-var table_0>.original_message = catalog.opportunity_state\n AND <dtml-var table_0>.message_context = "opportunity_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state.xml index 67fc9649e9..c5985f72a3 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.simulation_state\n AND <dtml-var table_0>.message_context = "simulation_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> @@ -137,6 +138,7 @@ <dtml-var table_0>.original_message = catalog.simulation_state\n AND <dtml-var table_0>.message_context = "simulation_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state_title.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state_title.xml index 30bacf22c8..3e48cc312c 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state_title.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_simulation_state_title.xml @@ -95,7 +95,9 @@ <dtml-var table_0>.original_message = catalog.simulation_state\n AND <dtml-var table_0>.message_context = "simulation_state_title"\n - AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> + AND <dtml-var table_0>.portal_type = catalog.portal_type\n + AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n + ]]></string> </value> </item> @@ -137,7 +139,9 @@ <dtml-var table_0>.original_message = catalog.simulation_state\n AND <dtml-var table_0>.message_context = "simulation_state_title"\n - AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> + AND <dtml-var table_0>.portal_type = catalog.portal_type\n + AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string">\n + ]]></string> </value> </item> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state.xml index 972c73f507..0ea7ca1e8f 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.validation_state\n AND <dtml-var table_0>.message_context = "validation_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> @@ -137,6 +138,7 @@ <dtml-var table_0>.original_message = catalog.validation_state\n AND <dtml-var table_0>.message_context = "validation_state"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state_title.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state_title.xml index aa4b74d565..99a6de4faa 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state_title.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/z_related_translated_validation_state_title.xml @@ -95,6 +95,7 @@ <dtml-var table_0>.original_message = catalog.validation_state\n AND <dtml-var table_0>.message_context = "validation_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> @@ -137,6 +138,7 @@ <dtml-var table_0>.original_message = catalog.validation_state\n AND <dtml-var table_0>.message_context = "validation_state_title"\n + AND <dtml-var table_0>.portal_type = catalog.portal_type\n AND <dtml-var table_0>.language = <dtml-sqlvar "Localizer.get_selected_language()" type="string"> ]]></string> </value> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log index 4ec52d1cd2..e50fa84bf5 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log @@ -1,3 +1,6 @@ +2010-06-08 Kazuhiko +* Add portal_type column in translation table and use it in several related keys to avoid unexpected verbose results of translated state search. + 2010-06-08 yusei * Add predicate category related keys. * Update predicate category indexing method to support "no-left-join" version of predicate search. diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision index 6bb2f98fb0..4129657509 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision @@ -1 +1 @@ -195 +196 \ No newline at end of file diff --git a/product/ERP5Type/patches/WorkflowTool.py b/product/ERP5Type/patches/WorkflowTool.py index aaf6f60121..c208d4b25d 100644 --- a/product/ERP5Type/patches/WorkflowTool.py +++ b/product/ERP5Type/patches/WorkflowTool.py @@ -799,6 +799,17 @@ WorkflowTool.getWorkflowChainDict = WorkflowTool_getWorkflowChainDict WorkflowTool._reindexWorkflowVariables = lambda self, ob: \ hasattr(aq_base(ob), 'reindexObjectSecurity') and ob.reindexObjectSecurity() +def WorkflowTool_getChainDict(self): + """Test if the given transition exist from the current state. + """ + chain_dict = {} + for portal_type, wf_id_list in self._chains_by_type.iteritems(): + for wf_id in wf_id_list: + chain_dict.setdefault(wf_id, []).append(portal_type) + return chain_dict + +WorkflowTool.getChainDict = WorkflowTool_getChainDict + # Backward compatibility, as WorkflowMethod has been removed in CMFCore 2.2 from MethodObject import Method class WorkflowMethod( Method ): -- 2.30.9