Commit 5dfed131 authored by Gabriel Monnerat's avatar Gabriel Monnerat

- remove one step from UNG Configuration

- update spreadsheet with steps
- clean up test

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@45117 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0fa4d67c
......@@ -28,7 +28,7 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>destination/workflow_module/ung_configuration_workflow/68</string>
<string>destination/workflow_module/ung_configuration_workflow/14</string>
</tuple>
</value>
</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="State" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>destination/workflow_module/ung_configuration_workflow/14</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>67</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>State</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Web Site</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Transition" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>after_script_id</string> </key>
<value> <string>BusinessConfiguration_setupUNGWebSite</string> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>destination/workflow_module/ung_configuration_workflow/67</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>guard_expression</string> </key>
<value> <string>python: True</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>68</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Transition</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Configure Web Site</string> </value>
</item>
<item>
<key> <string>transition_form_id</string> </key>
<value> <string>BusinessConfiguration_setupUNGWebSiteForm</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -52,20 +52,12 @@
<key> <string>_body</string> </key>
<value> <string>Base_translateString = context.Base_translateString\n
\n
return [\n
dict(id=\'fr\',\n
name=Base_translateString(\'French\'),\n
bt5=\'erp5_l10n_fr\',),\n
dict(id=\'pl\',\n
name=Base_translateString(\'Polish\'),\n
bt5=\'erp5_l10n_pl_PL\',),\n
dict(id=\'pt-BR\',\n
name=Base_translateString(\'Portuguese / Brazil\'),\n
bt5=\'erp5_l10n_pt-BR\',),\n
dict(id=\'ko\',\n
name=Base_translateString(\'Korean\'),\n
bt5=\'erp5_l10n_ko\',),\n
]\n
return {\n
\'fr\':dict(name=Base_translateString(\'French\'),bt5=\'erp5_l10n_fr\'),\n
\'pl\':dict(name=Base_translateString(\'Polish\'),bt5=\'erp5_l10n_pl_PL\'),\n
\'pt-BR\':dict(name=Base_translateString(\'Portuguese / Brazil\'),bt5=\'erp5_l10n_pt-BR\'),\n
\'ko\':dict(name=Base_translateString(\'Korean\'),bt5=\'erp5_l10n_ko\'),\n
}\n
</string> </value>
</item>
<item>
......
......@@ -56,7 +56,9 @@ portal = context.getPortalObject()\n
configuration_save_url = kw.get(\'configuration_save_url\', None)\n
preferred_event_sender_email = kw.get(\'preferred_event_sender_email\', \'\')\n
preferred_date_order = kw.get(\'preferred_date_order\', None)\n
preferred_language_list = kw.get(\'lang\', [])\n
default_available_language = kw.get(\'default_available_language\', \'en\')\n
\n
context.setGlobalConfigurationAttr(default_available_language=default_available_language)\n
\n
configuration_save = context.restrictedTraverse(configuration_save_url)\n
business_configuration = configuration_save.getParent()\n
......@@ -112,10 +114,12 @@ configuration_save.addConfigurationItem(\'System Preference Configurator Item\',
title="Default Configurator System Site Preference",\n
**system_prefs)\n
\n
# preferred_languages\n
for bt5_id in preferred_language_list:\n
configuration_save.addConfigurationItem("Standard BT5 Configurator Item",\n
bt5_id=bt5_id)\n
if default_available_language and default_available_language != "en":\n
language_dict = context.BusinessConfiguration_getUNGAvailableL10NBusinessTemplateList()\n
bt5 = language_dict.get(default_available_language)\n
if bt5:\n
configuration_save.addConfigurationItem("Standard BT5 Configurator Item",\n
bt5_id=bt5.get("bt5"))\n
]]></string> </value>
......
......@@ -95,7 +95,7 @@
<list>
<string>your_preferred_event_sender_email</string>
<string>your_preferred_date_order</string>
<string>your_lang</string>
<string>your_default_available_language</string>
</list>
</value>
</item>
......
......@@ -272,7 +272,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(x[\'name\'], x[\'id\']) for x in context.BusinessConfiguration_getUNGAvailableL10NBusinessTemplateList()] + [(context.Base_translateString(\'English\'), "en"),]</string> </value>
<value> <string>python: [(v[\'name\'], k) for k,v in context.BusinessConfiguration_getUNGAvailableL10NBusinessTemplateList().items()] + [(context.Base_translateString(\'English\'), "en"),]</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="MultiListField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_lang</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>unknown_selection</string> </key>
<value> <string>You selected an item that was not in the list.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra_item</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>5</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Which translations do you want to use?</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>view_separator</string> </key>
<value> <string encoding="cdata"><![CDATA[
<br />
]]></string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: getattr(here, field.getId().replace(\'your_\',\'\',1), \'\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(x[\'name\'], x[\'bt5\']) for x in context.BusinessConfiguration_getUNGAvailableL10NBusinessTemplateList()]</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>default_available_language = kw.get("default_available_language", "en")\n
context.setGlobalConfigurationAttr(default_available_language=default_available_language)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessConfiguration_setupUNGWebSite</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>Default</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>Default</string> </key>
<value>
<list>
<string>your_default_available_language</string>
</list>
</value>
</item>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessConfiguration_setupUNGWebSiteForm</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_empty</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Web Site</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts01408868.15</string> </value>
<value> <string>ts02059074.65</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
......@@ -24,202 +24,197 @@
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">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
Nz4BQXg/TN6RLkvYH/pG/b5U/lTmfFowG0ajj6K0Dces9oJJSmztcyUdlcK+igM4aPSmVuHQdXTS
+TRDnfL6LUCCfktU6ruZ44OoVW+nr8s88kdAQ1f14w62FeQiATkuA3V7jNQW9ny8WntzqRAQ1JMw
6sN624QmXDx5HEFrZOaxzGCJ01Qv9CdlA+/P3gql9NsxdP0Vmnap8eULuAnN4IiPfX/QIAozorf8
mqKnV26FTPTXqHARXl2R3DPnvHcRmh+DKHFiP3gCJLpqxTB5ry/5ImnP9gsS6j+Onw4CWoiMDlJl
sNf/QS79Vxm7P7PR5InVLOS4ciqqY9tkJrWmc41NtxZGDjrrfnxtPjCXze9qS6lFxzc3N9fodLKZ
KU9IOIm9jqM73CtoUw+Dq9By46y/0XtpBtpt29LFUWuvMzdwoVXVI/2sC2jA433Uvm0+pp1hdjlg
tu0JMn2NaYc+kGzvocUppngXYsePBkT0LPWmTA2dWIcWi052W9DDOVBgOnJ4ZoRRFISXwXLlx8sV
Ci+Rnmm80MD4W691GLyPovXyyXp55ZweS5++f18spzzUBZpnTLxadYF27l/KPTRe7Wj8v7DifwBQ
SwcIH80TWxEGAAACGwAAUEsDBBQAAAgAAG5zfT5QdvBYRQQAAEUEAAAIAAAAbWV0YS54bWw8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8b2ZmaWNlOmRvY3VtZW50LW1ldGEg
eG1sbnM6b2ZmaWNlPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmlj
ZToxLjAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpk
Yz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOm1ldGE9InVybjpvYXNp
czpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5zOm9vbz0iaHR0cDov
L29wZW5vZmZpY2Uub3JnLzIwMDQvb2ZmaWNlIiB4bWxuczpncmRkbD0iaHR0cDovL3d3dy53My5v
cmcvMjAwMy9nL2RhdGEtdmlldyMiIG9mZmljZTp2ZXJzaW9uPSIxLjIiIGdyZGRsOnRyYW5zZm9y
bWF0aW9uPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZmZpY2UvMS4yL3hzbHQvb2RmMnJk
Zi54c2wiPjxvZmZpY2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4yJFVu
aXggT3Blbk9mZmljZS5vcmdfcHJvamVjdC8zMjBtMTIkQnVpbGQtOTQ4MzwvbWV0YTpnZW5lcmF0
b3I+PG1ldGE6Y3JlYXRpb24tZGF0ZT4yMDExLTAxLTExVDEyOjM3OjQ0PC9tZXRhOmNyZWF0aW9u
LWRhdGU+PGRjOmxhbmd1YWdlPmZyLUZSPC9kYzpsYW5ndWFnZT48bWV0YTplZGl0aW5nLWN5Y2xl
cz4xODwvbWV0YTplZGl0aW5nLWN5Y2xlcz48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMDBINDVN
MDRTPC9tZXRhOmVkaXRpbmctZHVyYXRpb24+PGRjOmRhdGU+MjAxMS0wMy0yOVQxMToyNzoyODwv
ZGM6ZGF0ZT48bWV0YTpkb2N1bWVudC1zdGF0aXN0aWMgbWV0YTp0YWJsZS1jb3VudD0iMSIgbWV0
YTpjZWxsLWNvdW50PSIyMSIgbWV0YTpvYmplY3QtY291bnQ9IjAiLz48bWV0YTp1c2VyLWRlZmlu
ZWQgbWV0YTpuYW1lPSJJbmZvIDEiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZv
IDIiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZvIDMiLz48bWV0YTp1c2VyLWRl
ZmluZWQgbWV0YTpuYW1lPSJJbmZvIDQiLz48L29mZmljZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50
LW1ldGE+UEsDBBQACAgIAG5zfT4AAAAAAAAAAAAAAAAYAAAAVGh1bWJuYWlscy90aHVtYm5haWwu
cG5n7Vf5O9Rv99eCZAmTJUQIZalEdqbs0pCskYhk37KbGTK27Fv27VOUso99G2MfypLsxhLKhDEM
MTOY8X1/n+/1vZ4/4Pn1uX+57+s613Wfc5/zOq/XueMeG+mxXuS7SEdHx2qgr/0E2JF0dGfoLpwF
Tn7ldId0dJfEDLQfmAUXbBdCPcz6hfot71cizLu1d7lkrF2SYi5OWiLIdESukFndOP2VWJ0+xkvd
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
gRiUUh2YQi3S7mAlyQpFNVyVwiCYzL8pZkJD6hFcVut5Jyxkdyf2fQNm4kO6JuK40hpWqZJZuneV
urGlO6EUMWUC1NHVdSNLxgbP0AygizfBtTLzmLRzOudcPFKkfhwnUdRlDf5r0RIgi0+D5ICxkLsb
H0aOKxMJi+35VX8Xg5Zz4fJAuv2QfPz8tjnVsA6JMRvczxbSYpBdbPDftjU0FVSilzKgeWN18afF
kydPTE0jiedQkVxqX/vaudisfVM8gCm2RwRLHVc+aAgpzlzxEIO5HZrUPEfhl7qQjpi2O1eJRWo7
KmUlaqGLxGWYw0jePUBxE4IVW1j55C+gxf+8s3we8rG21mfjx0eiV3SJngI9465Z+qBGxVtnqTS4
mZ2dcRAzH9FL2L8QAAnANCgC2btACVfghxeqbOVf8GpZiUEgEBhBKMueHiN9s21r+rcsGb/m8RfD
94Mw0Hiziy77GlI9zSnD/RfhgtAOmwu2OIAhxXNXGsHCx5Un/AudwBiijy8+1mU7tGETOEndt/FG
3ftYlWwsApjvmiktgdTWINdtT7Vp2wVs8r8nrc3u/IiyL2Xq1gch0sTP/1/FEuX/1WL/NfzX8J8Z
aJe+C/02NpfTSgb+zXQGOkba1Zr2iP8BUEsHCABAY644DQAAXg8AAFBLAwQUAAgICABuc30+AAAA
AAAAAAAAAAAAJwAAAENvbmZpZ3VyYXRpb25zMi9hY2NlbGVyYXRvci9jdXJyZW50LnhtbAMAUEsH
CAAAAAACAAAAAAAAAFBLAwQUAAAIAABuc30+AAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRpb25z
Mi9wcm9ncmVzc2Jhci9QSwMEFAAACAAAbnN9PgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9u
czIvZmxvYXRlci9QSwMEFAAACAAAbnN9PgAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIv
cG9wdXBtZW51L1BLAwQUAAAIAABuc30+AAAAAAAAAAAAAAAAGgAAAENvbmZpZ3VyYXRpb25zMi90
b29scGFuZWwvUEsDBBQAAAgAAG5zfT4AAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL21l
bnViYXIvUEsDBBQAAAgAAG5zfT4AAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL3Rvb2xi
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</string> </value>
<value> <string encoding="base64">UEsDBBQAAAgAAIMYhj6FbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQACAgIAIMYhj4AAAAAAAAAAAAAAAALAAAA
Y29udGVudC54bWzNWW1v2zYQ/r5fIajAvsnyS9ImXpKiWNuhQNoV6zJsnwaaOslcKVIgqcj+9ztS
L6Fdy5FbO0gCKBD53N3D4/HuqFy9XuU8uAelmRTX4WQ0DgMQVCZMZNfh3Z/vo4vw9c1PVzJNGYV5
ImmZgzARlcLg3wClhZ7Xs9dhqcRcEs30XJAc9NzQuSxAtFJzHz13tuoRbdZ8sLgD+9IGVmaosMVu
yJLFcMsO7EsnilRDhS0WneqLp3Ko8ErzKJXo9bwghm2xWHEmvl6HS2OKeRxXVTWqZiOpsnhyeXkZ
u9mOMO1wRam4QyU0Bg7WmI4no0ncYnMwZCg/i/UpiTJfgBrsGmLIN7taKNAIweXawBymyJfZiK/7
bHB03Wc9bqZLogbHmQNvhsosGR4qs8SXzYlZ9uzvRfwRJ93j4+1DXKl8qC2L3XAVVawYvMwa7ctL
KTuqVqA+7I7udDw+i+t3D13thVeKGVAenO6FU8Jp53GZ73Ia4iYxIiK4tyHfHSLrCN0jMI3r6Q6s
k17Vf3+8/UKXkJMHMHscHDGhDREPnlF2E3pXeh4rKKQynWPS4ckXd2vacVuanPenDjvbQjOVJDuh
SGcWYxrBQxzdM6hebOTW/fFwGTtQF7gMeHtKOmyzHFgVoJhdCeE2EKJco9MwOGQx96Q386vKV8PU
2YCQSbqtsTscjaxXKNGHziVzo4jQFtmkqmax6Hc9cvsRWeNuxbUWzLIYUJqbGC1OVZKO8CW8aWts
faZ03A2kWGujlFCIEqBc31zVubIbDup3u67r8I1ICIfgC3IK7j6EAeazFpkzvr4OfyaF1L9swuqx
MPAUF8xQTDr3RDG3Q/F+s7clZQnRqG6HyY3J7zbxhi+IWO9Q3034wnYqykDgJmPK0BXTP2T8lmE9
cxvsfNbr1y3cDscendpb+I/8Ve6n5WGGUFprA/ljnOK+8GzGSWmkPRM0cnq6uHXPjRVQOemMNbRd
WsBCzMtchK2kPxgVeExBGQY6SOV8oYB8jRaA5xAVWtOtxgZescQW0dlo9vKS5o6/R2cft+lTcTsf
zc5mh3GbPRW3yeVofPHqMHJnT0VuOpq+PIib6gs4JastYjjis6qn7OASWLbEGj0enZ1P0fh+wqUG
LAOG5YRHvrRRJQznbchu3u1gjm00qKggGURtckhJyc3WorwF1XeahOmCk3XDp9Fmey+8sUS5TFAT
V5FZHLD90HemgfN2piDKXibdy17CVmg7OAj9milZisQGj8TLxgs6tr+HcOw728fiKFWC+7GQxthm
dIxn6ILmgZacJcGLsfsJ9y/GU8MhNXuV1DBVR5aQAvxhI4s+4QMc1pdwnrHDth2h2nP7iB+P4TBD
/oWVUZDuPrZDT2VKuN6RJuLeSttMLGSyfugr8XZMEr0EMDdXtQH3bIzVhN9DyTi3Z7ce9XfRZZ96
uFDYKLe8vEYV70iBa5ofKKV4/9AttJksCmw3EtAsE0126VboEWuKwg4mrmFofFSHVh1Mu2JuuM7p
CXTOvlcnFokdCm3h2rKN+nZZtlvYXloILyEy6wLHtcGdy6wO+yGsuMFLp4GruHm7irdVDzQ2HWTM
MMOPYGw2yBiGl7tIYSu+12S85fUf2IYBrH5XGRFMk0dpfY/yf2SpgpNa+FWKlGWlgmBtbUnP1ugZ
eflO4z09qD9CHt0Hn5xaRAbY1KmAUIplyOij23lnP0UEZgnNQr6xaPcgqIgwgZEBxeRu4Nltwski
sL5jNy45pfPtdy1rBwhdOmPPyMXv/vh8HmBZTwFbLgrHd8Pdp9+CzyfUj8WPCWyZZA5BxuWCcH85
tluoE43l8YU9Uqme1vdvZSW4JMlJfP7Bfg3m/DRJ3FeO7pYUEpvRc7IOFpCxQ8ulP/LQk250m/FG
P9q+bf8z8eZ/UEsHCMKfIoKPBQAAjRwAAFBLAwQUAAgICACDGIY+AAAAAAAAAAAAAAAACgAAAHN0
eWxlcy54bWzdWduO2zYQfe9XCFogSIDKlL2bzdpZa5Ei6AVIiiBt+k5TlMyGEgWKstd97Pf0q/ol
HZISLVmSV7kUabMBsiF55sIzM+RQub27z7i3o7JkIl/781noezQnImZ5uvbf/fp9cOPfRd/ciiRh
hK5iQaqM5ioo1YHT0gPhvFzZxbVfyXwlcMnKVY4zWq4UWYmC5o3Qqo1eGVN2xiibKm7AbWlF79VU
YY3tyOLNdMsG3JaOJd5PFdZY4LQtnoipwvclDxIREJEVWLETL+45y9+v/a1SxQqh/X4/21/OhEzR
fLlcIrPqHCYOV1SSG1RMEOVUGyvRfDZHDTajCk/1T2PbLuVVtqFyMjVY4V5UC0lLgMB2dV5OU9SW
6eTXLp2cXbt0hGayxXJynhlwN1Uu4+mpchm3ZTOstiPxvUGvYdH89frVMa9kNtWWxnaoIpIVk7dp
0W15IYRzVQvYYjfuLsLwCtlxC70/C99LpqhswclZOMGcOMZFNkQa4OYIEAHd6ZRv0FJvelTzUyRp
IaRyjiTTDztgZ+FKdasyPl6qerWBpjKOB6HgziWCsoWiCXaM7i86Z9l5/pfIgHyvPoNb5z74aEyu
lMR5qdOiLr1aGeyrnJn9Blqv0Wi1wKmxQHBCKSTiZCHjZAYDP2qujETAdZFgQoOYEl5Gt7bU3bRn
x5rEtf8ijzGn3i/ggvfuJ9+DcmyQGeOHtf8IF6J83oXZOd9rKS6YIlAzOyyZ2TA6b/ZVRViMS1A3
YLKz+NEmXvANzg8D6t1CW1gvBSnNqWSQ8eWelZ9k/BWD49jE03A2yusJboDYz+7aS/o7/q0671YL
M8WlQ6lo9pBPaCw963nb4DS+xzTBFa/bnkZz7aMpqYBQrpPeLh2ngkJCuUjFoFlqVBGWYVjgYLRc
+4sjQwWWOJW42PalQCMYF0UQs1LhXHdbUHZPSXaU1r1NX9Dsr5uCiVhxnKcVTmEykWaCiCpXEnbz
/Vv/VDKAqsf5QHEaWKOqQdG8Wal1Ngs/fNfXrK9aTu+HiszpdZi+ZrcEunVMB4IV3dpmpO5JOhG0
tPwc+icgrx5lLA9YrmgKcjFLmYJwzY2hAZ1OB6mkhBb6MGRqHj57Eza72AkOtab7TyUrOuZEP1/O
u9esplJUhenijXbk1Os8iTy3BzPs+37INoI3urrp0mBbKRP9/edfTuOJkmhg4UMI88cS3KQtF9Bn
XiRJCD+nmwyGN/nV8WvpyXDhyiOPmb29d5hX9PGTR6l6vnaJh4uC12wHncRE47Gykv0IvbTF5o8f
imhc+C0tz8t67mB0j86ga/dMcphjpn5bMoU5I40+A67ymEp4HdEGUwrO4hHInsW6CceVEiOIOhWN
UfNv3/mwpyzdQn8JwYpb59QDzFpyFh/FTpdY0yuehvtcXH6kWH8A+DyBOXMXGgohMGkelKKS+lZL
2H2jHHpuijWZUIM50JdgXtIHbkug/Kh07RMQhPfD6B3psoT9oW/U60L5Y5nzacGsGZ1/FKVNOCa1
F0xSYmufK+moFPZVHMBBoze1DPuuo5POpx7qlNdvARJ0W6JC380cH0SlOjt9XWRzfwDUd1U/7mBb
QSZikOMyUJtjpLaw5+PV2plLhICgnoRRH9bbOjTh7NnTObRGZh7LFJY4TfRCd1LW8O7sRiil346h
66/QuEu1L1/ATWgGB3zs+oN6UZgQvcXXFD29shEy1l+jwll4c0Myz5zz3kVofgyiwLH94AmQ+U0j
hsl7fcnncXO2X5BQ/3H8tBDQQqS0lyq9vf4Pcum/ytjDmY1GT6x6IcOlU1Ee2yYzqTWda2zatTBw
0Fn3o1vzgbmof5dbSi06uru7u0Wnk/VMcULCSex1HN3hXkKbeuhdhZYbZ/2N3ks90G7bli6aN/Za
cz0XGlUd0s+6gHo8PkTt2/pj2hlmFz1mm54g1deYdugDyfYeW5xiirchdvykR0THUmfK1NCJdWix
6Gi3BT2cAwWmI4dnRjifB+FVEF77UXiNwiukZ2ovNDD61mscBu/DcBVercJr5/RQ+nT9+2I55aE2
0DxjouWyDbRz/1LuoeFqR8P/hRX9A1BLBwhWni5SEQYAAAIbAABQSwMEFAAACAAAgxiGPhoFzlxF
BAAARQQAAAgAAABtZXRhLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
CjxvZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0Yzpv
cGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x
LyIgeG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRh
OjEuMCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIHhtbG5z
OmdyZGRsPSJodHRwOi8vd3d3LnczLm9yZy8yMDAzL2cvZGF0YS12aWV3IyIgb2ZmaWNlOnZlcnNp
b249IjEuMiIgZ3JkZGw6dHJhbnNmb3JtYXRpb249Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3Jn
L29mZmljZS8xLjIveHNsdC9vZGYycmRmLnhzbCI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRv
cj5PcGVuT2ZmaWNlLm9yZy8zLjIkVW5peCBPcGVuT2ZmaWNlLm9yZ19wcm9qZWN0LzMyMG0xMiRC
dWlsZC05NDgzPC9tZXRhOmdlbmVyYXRvcj48bWV0YTpjcmVhdGlvbi1kYXRlPjIwMTEtMDEtMTFU
MTI6Mzc6NDQ8L21ldGE6Y3JlYXRpb24tZGF0ZT48ZGM6bGFuZ3VhZ2U+ZnItRlI8L2RjOmxhbmd1
YWdlPjxtZXRhOmVkaXRpbmctY3ljbGVzPjIyPC9tZXRhOmVkaXRpbmctY3ljbGVzPjxtZXRhOmVk
aXRpbmctZHVyYXRpb24+UFQwMEg0OU0wMlM8L21ldGE6ZWRpdGluZy1kdXJhdGlvbj48ZGM6ZGF0
ZT4yMDExLTA0LTA2VDAwOjA0OjA2PC9kYzpkYXRlPjxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBt
ZXRhOnRhYmxlLWNvdW50PSIxIiBtZXRhOmNlbGwtY291bnQ9IjE4IiBtZXRhOm9iamVjdC1jb3Vu
dD0iMCIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMSIvPjxtZXRhOnVzZXIt
ZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMiIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9
IkluZm8gMyIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gNCIvPjwvb2ZmaWNl
Om1ldGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAICAgAgxiGPgAAAAAAAAAAAAAAABgA
AABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmftV+k/G1jbNtO306oyb61ttXQZ1JqpJdZSWlTtWqLW
qqXVbNZYYpmnjzK2Gkt0iFQ7ahlEYk2TIKXELm0VsYSi1ghSkiCJPJnn33jfT+f87g/nd65zX/d1
XSfTzcVe+tT5UxISEtIOd257iNdGCYkfJE7+KN5F10pwxfVuh9vW9+PLWAwwRH5clcp2d2OnKwXE
W+d62b5/UnOn4s9rATfbbfU+15w5c6RgXXTp5Nz/nlk6riB/X1bhup2hopvH5bPOp6lKd0//EmDz
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
NgQAAAwmAAAAAA==</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -227,7 +222,7 @@ QS1JTkYvbWFuaWZlc3QueG1sUEsFBgAAAAAQABAANgQAAEcnAAAAAA==</string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>11155</int> </value>
<value> <int>10840</int> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -87,10 +87,6 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
stepSetupPreferenceConfiguration%(country)s
stepConfiguratorNext
stepTic
stepCheckConfigureWebSiteForm
stepSetupWebSiteConfiguration
stepConfiguratorNext
stepTic
stepCheckConfigureInstallationForm
stepSetupInstallConfiguration
stepConfiguratorNext
......@@ -115,13 +111,11 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
def afterSetUp(self):
self.portal.portal_templates.updateRepositoryBusinessTemplateList(
['http://www.erp5.org/dists/snapshot/bt5/'])
if not self.portal.portal_catalog.getResultValue(portal_types="System Preference",
title="global_system_preference"):
preference = self.portal.portal_preferences.newContent(portal_type="System Preference")
preference.setTitle("global_system_preference")
preference.setPreferredOoodocServerAddress("localhost")
preference.setPreferredOoodocServerPortNumber(8011)
preference.enable()
preference = self.portal.portal_preferences.newContent(portal_type="System Preference")
preference.setTitle("global_system_preference")
preference.setPreferredOoodocServerAddress("localhost")
preference.setPreferredOoodocServerPortNumber(8011)
preference.enable()
def stepCreateBusinessConfiguration(self, sequence=None, sequence_list=None, **kw):
""" Create one Business Configuration """
......@@ -240,20 +234,20 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
self.assertEquals('show', response_dict['command'])
self.assertEquals('Previous', response_dict['previous'])
self.assertEquals('Configure ERP5 Preferences', response_dict['next'])
self.assertCurrentStep('ERP5 preferences', response_dict)
self.assertCurrentStep('UNG Preferences', response_dict)
def stepSetupPreferenceConfigurationBrazil(self, sequence=None, sequence_list=None, **kw):
""" Setup the Brazil preference configuration """
next_dict = dict(field_your_preferred_date_order='dmy',
field_your_lang='erp5_l10n_fr',
field_your_default_available_language='pt-BR',
field_your_preferred_event_sender_email="test@test.com",
default_field_your_lang=1)
sequence.edit(next_dict=next_dict)
def stepSetupPreferenceConfigurationFrance(self, sequence=None, sequence_list=None, **kw):
""" Setup the Brazil preference configuration """
""" Setup the France preference configuration """
next_dict = dict(field_your_preferred_date_order='ymd',
field_your_lang='erp5_l10n_pt-BR',
field_your_default_available_language='fr',
field_your_preferred_event_sender_email="test@test.com",
default_field_your_lang=1)
sequence.edit(next_dict=next_dict)
......@@ -263,7 +257,7 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
response_dict = sequence.get("response_dict")
self.assertEquals('show', response_dict['command'])
self.assertEquals('Previous', response_dict['previous'])
self.assertEquals('Configure Web Site', response_dict['next'])
self.assertEquals('Install', response_dict['next'])
def stepCheckMultipleUserAccountThreeBrazil(self, sequence=None, sequence_list=None, **kw):
""" Check if the users were created correctly """
......@@ -291,8 +285,6 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
""" Check the installation form """
response_dict = sequence.get("response_dict")
self.assertEquals('show', response_dict['command'])
self.assertEquals('Previous', response_dict['previous'])
self.assertEquals('Install', response_dict['next'])
def stepSetupInstallConfiguration(self, sequence=None, sequence_list=None, **kw):
""" Install the Configuration """
......@@ -311,14 +303,13 @@ class TestUNGConfiguratorWorkflowMixin(ERP5TypeTestCase):
def stepCheckSystemPreferenceAfterInstallation(self, sequence=None, sequence_list=None, **kw):
""" Check System Preference"""
import ipdb;ipdb.set_trace()
system_preference = self.portal.portal_catalog.getResultValue(portal_type="System Preference")
self.assertEquals(system_preference.getPreferredOoodocServerPortNumber(), 8011)
self.assertEquals(system_preference.getPreferredOoodocServerAddress(), "localhost")
def stepCheckUserPreferenceAfterInstallation(self, sequence=None, sequence_list=None, **kw):
""" Check System Preference"""
portal_catalog = portal.portal_catalog
portal_catalog = self.portal.portal_catalog
preference = portal_catalog.getResultValue(portal_type="Preference",
reference='Preference for Person Assignor')
self.assertEquals(preference.getPreferenceState(), "enabled")
......
35
\ No newline at end of file
36
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment