Commit 80621adf authored by Gabriel Monnerat's avatar Gabriel Monnerat

- clean up scripts

- update steps of configurator in spreadsheet

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@44670 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 45e83aec
...@@ -10,13 +10,7 @@ ...@@ -10,13 +10,7 @@
<key> <string>_Access_contents_information_Permission</string> </key> <key> <string>_Access_contents_information_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string> <string>Manager</string>
<string>Owner</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -24,12 +18,7 @@ ...@@ -24,12 +18,7 @@
<key> <string>_Add_portal_content_Permission</string> </key> <key> <string>_Add_portal_content_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string> <string>Manager</string>
<string>Owner</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -37,12 +26,7 @@ ...@@ -37,12 +26,7 @@
<key> <string>_Modify_portal_content_Permission</string> </key> <key> <string>_Modify_portal_content_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string> <string>Manager</string>
<string>Owner</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -50,13 +34,7 @@ ...@@ -50,13 +34,7 @@
<key> <string>_View_Permission</string> </key> <key> <string>_View_Permission</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string> <string>Manager</string>
<string>Owner</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
<?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_setupUNGAssignment</string> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>destination/workflow_module/ung_configuration_workflow/66</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>65</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 assignment</string> </value>
</item>
<item>
<key> <string>transition_form_id</string> </key>
<value> <string>BusinessConfiguration_setupUNGAssignmentForm</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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/32</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>66</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>State</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Assignment</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
<value> <value>
<tuple> <tuple>
<string>destination/workflow_module/ung_configuration_workflow/65</string> <string>destination/workflow_module/ung_configuration_workflow/32</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
...@@ -89,20 +89,7 @@ if business_template is not None:\n ...@@ -89,20 +89,7 @@ if business_template is not None:\n
if obj is not None and hasattr(obj, \'getPortalType\'):\n if obj is not None and hasattr(obj, \'getPortalType\'):\n
# XXX This hardcoded list is a bit inconvinient.\n # XXX This hardcoded list is a bit inconvinient.\n
if obj.getPortalType() in (\'Person\', \n if obj.getPortalType() in (\'Person\', \n
\'Organisation\', \n \'Organisation\'):\n
\'Account\', \n
\'Service\', \'Product\',\n
\'Sale Trade Condition\', \n
\'Purchase Trade Condition\',\n
\'Order Root Simulation Rule\', \n
\'Delivery Root Simulation Rule\',\n
\'Trade Model Simulation Rule\', \n
\'Accounting Transaction Root Simulation Rule\',\n
\'Invoice Transaction Simulation Rule\', \n
\'Payment Simulation Rule\',\n
\'Invoice Root Simulation Rule\', \n
\'Delivery Simulation Rule\', \n
\'Invoice Simulation Rule\'):\n
if isTransitionPossible(obj, \'validate\'):\n if isTransitionPossible(obj, \'validate\'):\n
obj.validate()\n obj.validate()\n
print "Validated: ", obj.getRelativeUrl()\n print "Validated: ", obj.getRelativeUrl()\n
......
...@@ -53,50 +53,6 @@ ...@@ -53,50 +53,6 @@
<value> <string>configuration_save = context.restrictedTraverse(configuration_save_url)\n <value> <string>configuration_save = context.restrictedTraverse(configuration_save_url)\n
group_id = context.getGlobalConfigurationAttr(\'group_id\')\n group_id = context.getGlobalConfigurationAttr(\'group_id\')\n
\n \n
# setup Rules\n
configuration_save.addConfigurationItem("Rule Configurator Item")\n
\n
# setup default security\n
configuration_save.addConfigurationItem("Role Configurator Item", \n
filename="portal_types_roles_standard.ods",\n
group_id = \'group/%s\' %group_id)\n
\n
# web site module security\n
# we will not provide web_site_module for now.\n
configuration_save.addConfigurationItem("Permission Configurator Item",\n
filename="module_permission_access.ods")\n
\n
# Catalog Keyword Search Keys are for now hardcoded.\n
configuration_save.addConfigurationItem("Catalog Keyword Key Configurator Item",\n
key_list=(\'description\', \'title\', \'catalog.description\', \'catalog.title\'))\n
\n
# This could be a customer decision option\n
# configuration_save.addConfigurationItem("Site Property Configurator Item",\n
# site_property_list=[[[\'email_from_address\', \'email@example.com\', \'string\'],]])\n
\n
# Customize portal type information.\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Purchase Order\',\n
add_propertysheet_list=(\'TradeOrder\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Sale Order\',\n
add_propertysheet_list=(\'TradeOrder\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Purchase Order Line\',\n
add_propertysheet_list=(\'TradeOrderLine\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Sale Order Line\',\n
add_propertysheet_list=(\'TradeOrderLine\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Inventory\',\n
add_propertysheet_list=(\'InventoryConstraint\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Sale Packing List\',\n
add_propertysheet_list=(\'TradeOrder\',))\n
configuration_save.addConfigurationItem("Portal Type Configurator Item",\n
target_portal_type=\'Sale Packing List Line\',\n
add_propertysheet_list=(\'TradeOrderLine\',))\n
\n
# These must be last\n # These must be last\n
configuration_save.addConfigurationItem("Export Customer BT5 Configurator Item")\n configuration_save.addConfigurationItem("Export Customer BT5 Configurator Item")\n
</string> </value> </string> </value>
......
<?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>configuration_save = context.restrictedTraverse(configuration_save_url)\n
\n
## Configure assignment period\n
configuration_save.addConfigurationItem("Assignment Configurator Item",\n
start_date=period_start_date,\n
stop_date=period_stop_date,\n
assignment_title=assignment_title)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>configuration_save_url=None, period_start_date=None, period_stop_date=None, assignment_title=None, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessConfiguration_setupUNGAssignment</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>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_period_description</string>
<string>your_period_title</string>
<string>your_period_start_date</string>
<string>your_period_stop_date</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_setupUNGAssignmentForm</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>Accounting configuration</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>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_period_description</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<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>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<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>field_id</string> </key>
<value> <string>my_empty_mode_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewConfiguratorFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Assignment Period</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:here.Base_translateString("Assignment Periods are used to define the range of dates in which you will be allowed to login in UNG Web Site. To start using the system, you have to configure the first assignment period.")</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_period_start_date</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_empty_mode_date</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewConfiguratorFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>What is the begin date of your current accounting period?</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: test(getattr(here, field.getId().replace(\'your_\',\'\',1), None) is not None, getattr(here, field.getId().replace(\'your_\',\'\',1), \'\'), modules[\'DateTime\'].DateTime(modules[\'DateTime\'].DateTime().year(), 1, 1))</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_period_stop_date</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_empty_mode_date</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewConfiguratorFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>What will be the end date of your current accounting period?</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: test(getattr(here, field.getId().replace(\'your_\',\'\',1), None) is not None, getattr(here, field.getId().replace(\'your_\',\'\',1), \'\'), modules[\'DateTime\'].DateTime(modules[\'DateTime\'].DateTime().year(), 12, 31))</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>display_width</string>
<string>required</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>your_period_title</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<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>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<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>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_empty_mode_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewConfiguratorFieldLibrary</string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>What is the name of this period?</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: test(getattr(here, field.getId().replace(\'your_\',\'\',1), None) is not None, getattr(here, field.getId().replace(\'your_\',\'\',1), \'\'), modules[\'DateTime\'].DateTime().year())</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -52,39 +52,33 @@ ...@@ -52,39 +52,33 @@
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>configuration_save_url = kw.get(\'configuration_save_url\', None)\n <value> <string>configuration_save_url = kw.get(\'configuration_save_url\', None)\n
configuration_save = context.restrictedTraverse(configuration_save_url)\n configuration_save = context.restrictedTraverse(configuration_save_url)\n
organisation_id = context.getGlobalConfigurationAttr(\'organisation_id\')\n
group_id = context.getGlobalConfigurationAttr(\'group_id\')\n
\n \n
company_user_number = context.getGlobalConfigurationAttr(\'company_employees_number\')\n user_number = context.getGlobalConfigurationAttr(\'user_number\')\n
\n \n
## get only form keys\n ## get only form keys\n
form_keys = [i for i in kw.keys() if i.startswith(\'field_your_\') and i!=\'field_your_search_text\']\n form_keys = [i for i in kw.keys() if i.startswith(\'field_your_\') and i!=\'field_your_search_text\']\n
\n \n
if company_user_number == 1:\n function = "function/ung_user"\n
if user_number == 1:\n
# only one user\n # only one user\n
for key in (\'configuration_save_url\', \'transition\', \'client_id\', \'password_confirm\'):\n for key in (\'configuration_save_url\', \'transition\', \'client_id\', \'password_confirm\'):\n
kw.pop(key, None)\n kw.pop(key, None)\n
function = kw.pop(\'function\', None)\n configuration_save.addConfigurationItem("Person Configurator Item",\n
configuration_save.addConfigurationItem("Person Configurator Item", \n function=function,\n
organisation_id = organisation_id,\n **kw)\n
function = function,\n
group_id = group_id,\n
**kw)\n
else:\n else:\n
# many users\n # many users\n
context.log(company_user_number)\n for counter in range(user_number):\n
for employee_counter in range(0, company_user_number):\n
user_kw = {}\n user_kw = {}\n
for key in form_keys:\n for key in form_keys:\n
new_key = key.replace("field_your_", "")\n new_key = key.replace("field_your_", "")\n
user_kw[new_key] = kw[key][employee_counter]\n value = kw.get(key)\n
if value:\n
user_kw[new_key] = value[counter]\n
# add an user\n # add an user\n
function = user_kw.pop(\'function\', None)\n
user_kw.pop(\'password_confirm\', None)\n user_kw.pop(\'password_confirm\', None)\n
configuration_save.addConfigurationItem("Person Configurator Item", \n configuration_save.addConfigurationItem("Person Configurator Item",\n
organisation_id = organisation_id,\n function=function,\n
function = function,\n
group_id = group_id,\n
**user_kw)\n **user_kw)\n
</string> </value> </string> </value>
</item> </item>
......
...@@ -51,27 +51,12 @@ ...@@ -51,27 +51,12 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>configuration_save = context.restrictedTraverse(configuration_save_url)\n <value> <string>configuration_save = context.restrictedTraverse(configuration_save_url)\n
company_email = kw[\'default_email_text\']\n
\n
# create under \'portal_categories/group\' a new category using company title\n
group_id = \'my_group\' #\'_\'.join(kw[\'title\'].split(\' \'))[:20]\n
\n \n
organisation_configurator_item = configuration_save.addConfigurationItem(\n organisation_configurator_item = configuration_save.addConfigurationItem(\n
"Organisation Configurator Item",\n "Organisation Configurator Item",\n
group=group_id,\n
site=\'main\',\n
**kw)\n **kw)\n
\n \n
configuration_save.addConfigurationItem("Category Configurator Item",\n context.setGlobalConfigurationAttr(company_email=kw.get(\'default_email_text\'))\n
category_root=\'group\',\n
object_id=group_id,\n
title=kw[\'title\'])\n
\n
# store globally group_id \n
context.setGlobalConfigurationAttr(group_id=group_id)\n
\n
# store globally company\'s email\n
context.setGlobalConfigurationAttr(company_email=company_email)\n
\n \n
# store globally company\'s configurator item which we can use later to reconfigure\n # store globally company\'s configurator item which we can use later to reconfigure\n
context.setGlobalConfigurationAttr(\n context.setGlobalConfigurationAttr(\n
......
...@@ -52,9 +52,7 @@ ...@@ -52,9 +52,7 @@
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
# XXX-Luke: Beware, I will modify this script *very* much\n
portal = context.getPortalObject()\n portal = context.getPortalObject()\n
\n
configuration_save_url = kw.get(\'configuration_save_url\', None)\n configuration_save_url = kw.get(\'configuration_save_url\', None)\n
preferred_event_sender_email = kw.get(\'preferred_event_sender_email\', \'\')\n preferred_event_sender_email = kw.get(\'preferred_event_sender_email\', \'\')\n
preferred_date_order = kw.get(\'preferred_date_order\', None)\n preferred_date_order = kw.get(\'preferred_date_order\', None)\n
...@@ -68,62 +66,6 @@ company_email = context.getGlobalConfigurationAttr(\'company_email\')\n ...@@ -68,62 +66,6 @@ company_email = context.getGlobalConfigurationAttr(\'company_email\')\n
if preferred_event_sender_email in (\'\', None,):\n if preferred_event_sender_email in (\'\', None,):\n
preferred_event_sender_email = company_email\n preferred_event_sender_email = company_email\n
\n \n
# price currency contains all currency info like iso code& precision \';\'\n
# separated\n
currency_info = kw[\'price_currency\']\n
currency_reference, currency_base_unit_quantity, currency_title = \\\n
currency_info.split(\';\')\n
configuration_save.addConfigurationItem(\n
"Currency Configurator Item",\n
reference = currency_reference,\n
base_unit_quantity = currency_base_unit_quantity,\n
title = currency_title,)\n
context.setGlobalConfigurationAttr(default_currency=currency_reference)\n
\n
# adjust price_currency for organisation configuration item\n
organisation_configurator_item = context.getGlobalConfigurationAttr(\n
\'organisation_configurator_item\')\n
organisation_configurator_item_obj = context.restrictedTraverse(\n
organisation_configurator_item, None)\n
organisation_configurator_item_obj.setPriceCurrency(currency_reference)\n
\n
# CRM\n
# Create services used in crm preference.\n
# XXX I think here is not a good place.(yusei)\n
service_list = (\n
# sale opportunity\n
(\'product\', \'Product\'),\n
(\'service\', \'Service\'),\n
# campaign\n
(\'marketing_campaign\', \'Marketing Campaign\'),\n
(\'marketing_survey\', \'Market Survey\'),\n
(\'marketing_purchases\', \'Purchases Campaign\'),\n
(\'marketing_sales\', \'Sales Campaign\'),\n
(\'marketing_other\', \'Other Marketing Service\'),\n
# support request\n
(\'support_administrative\', \'Administrative Support\'),\n
(\'support_financial\', \'Financial Support\'),\n
(\'support_it\', \'IT Support\'),\n
(\'support_other\', \'Other Support Service\'),\n
# meeting\n
(\'organisation_conference\', \'Conference\'),\n
(\'organisation_partnership\', \'Partnership Meeting\'),\n
(\'organisation_purchases\', \'Purchases Meeting\'),\n
(\'organisation_project\', \'Project Meeting\'),\n
(\'organisation_sales\', \'Sales Meeting\'),\n
(\'organisation_other\', \'Other Meeting\'),\n
# event\n
(\'event_complaint\', \'Complaint\'),\n
(\'event_announcement\', \'Announcement\'),\n
(\'event_inquiry\', \'Inquiry\'),\n
(\'event_advertisement\', \'Advertisement\'),\n
(\'event_spam\', \'Spam\'),\n
(\'event_information\', \'Information\'),\n
(\'event_other\', \'Other event\'),\n
)\n
configuration_save.addConfigurationItem("Service Configurator Item",\n
service_list=service_list)\n
\n
# configure preferences\n # configure preferences\n
prefs = dict(\n prefs = dict(\n
# UI\n # UI\n
...@@ -139,17 +81,11 @@ prefs = dict(\n ...@@ -139,17 +81,11 @@ prefs = dict(\n
preferred_textarea_height = 5,\n preferred_textarea_height = 5,\n
preferred_report_style = \'ODT\',\n preferred_report_style = \'ODT\',\n
preferred_report_format = \'pdf\',\n preferred_report_format = \'pdf\',\n
preferred_money_quantity_field_width = 10, # TODO: adapt this\n preferred_money_quantity_field_width = 10,\n
# based on the selected\n
# currency, XOF needs\n
# more than 10 for\n
# example\n
preferred_html_style_access_tab = 1,\n preferred_html_style_access_tab = 1,\n
preferred_quantity_field_width = 8,\n preferred_quantity_field_width = 8,\n
# accounting\n preferred_ooodoc_server_address = "localhost",\n
preferred_accounting_transaction_currency = \'currency_module/%s\' % \\\n preferred_ooodoc_server_port_number = 8011)\n
currency_reference,\n
)\n
\n \n
configuration_save.addConfigurationItem(\n configuration_save.addConfigurationItem(\n
\'Preference Configurator Item\',\n \'Preference Configurator Item\',\n
...@@ -162,67 +98,18 @@ configuration_save.addConfigurationItem(\n ...@@ -162,67 +98,18 @@ configuration_save.addConfigurationItem(\n
# configure system preferences\n # configure system preferences\n
# some preparation\n # some preparation\n
system_prefs = dict(\n system_prefs = dict(\n
# CRM\n
preferred_campaign_resource_list = [\n
\'service_module/marketing_campaign\',\n
\'service_module/marketing_survey\',\n
\'service_module/marketing_purchases\',\n
\'service_module/marketing_sales\',\n
\'service_module/marketing_other\',],\n
preferred_event_resource_list = [\n
\'service_module/event_complaint\',\n
\'service_module/event_announcement\',\n
\'service_module/event_inquiry\',\n
\'service_module/event_advertisement\',\n
\'service_module/event_spam\',\n
\'service_module/event_information\',\n
\'service_module/event_other\',],\n
preferred_meeting_resource_list = [\n
\'service_module/organisation_conference\',\n
\'service_module/organisation_partnership\',\n
\'service_module/organisation_purchases\',\n
\'service_module/organisation_project\',\n
\'service_module/organisation_sales\',\n
\'service_module/organisation_other\',],\n
preferred_sale_opportunity_resource_list = [\n
\'service_module/product\',\n
\'service_module/service\',],\n
preferred_support_request_resource_list = [\n
\'service_module/support_administrative\',\n
\'service_module/support_financial\',\n
\'service_module/support_it\',\n
\'service_module/support_other\',],\n
preferred_event_sender_email = preferred_event_sender_email,\n preferred_event_sender_email = preferred_event_sender_email,\n
preferred_event_assessment_form_id_list = [],\n preferred_event_assessment_form_id_list = [],\n
# dms\n
# XXX-Luke: (proposal) Allow to define, maybe use some magic of\n
# representation\n
preferred_document_file_name_regular_expression = \\\n preferred_document_file_name_regular_expression = \\\n
\'(?P<node_reference>[a-zA-Z0-9_-]+)-(?P<local_reference>[a-zA-Z0-9_.]+)\'\n \'(?P<node_reference>[a-zA-Z0-9_-]+)-(?P<local_reference>[a-zA-Z0-9_.]+)\'\n
\'-(?P<version>[0-9a-zA-Z.]+)-(?P<language>[a-z]{2})[^-]*?\',\n \'-(?P<version>[0-9a-zA-Z.]+)-(?P<language>[a-z]{2})[^-]*?\',\n
preferred_document_reference_regular_expression = \'(?P<reference>[a-zA-Z0-9\'\n preferred_document_reference_regular_expression = \'(?P<reference>[a-zA-Z0-9\'\n
\'-_.]+-[a-zA-Z0-9-_.]+)(|-(?P<version>[0-9a-zA-Z.]+))(|-(?P<language>[a\'\n \'-_.]+-[a-zA-Z0-9-_.]+)(|-(?P<version>[0-9a-zA-Z.]+))(|-(?P<language>[a\'\n
\'-z]{2})[^-]*)?\',\n \'-z]{2})[^-]*)?\',\n
preferred_document_classification = \'collaborative/team\',\n
preferred_synchronous_metadata_discovery = True,\n preferred_synchronous_metadata_discovery = True,\n
preferred_redirect_to_document = True,\n preferred_redirect_to_document = True)\n
# pdm\n
preferred_product_individual_variation_base_category_list = [\'variation\'],\n
preferred_component_individual_variation_base_category_list = [\'variation\'],\n
preferred_service_individual_variation_base_category_list = [\'variation\'],\n
# trade\n
preferred_supplier_role_list = [\'supplier\'],\n
preferred_client_role_list = [\'client\'],\n
preferred_sale_use_list = [\'trade/sale\'],\n
preferred_purchase_use_list = [\'trade/purchase\'],\n
preferred_packing_use_list = [\'trade/container\'],\n
# Express preferences\n
preferred_express_subscription_status = 1,\n
preferred_express_configuration_status = 1,\n
preferred_express_after_setup_script_id = \'ERP5Generator_afterSetup\')\n
\n \n
configuration_save.addConfigurationItem(\n configuration_save.addConfigurationItem(\'System Preference Configurator Item\',\n
\'System Preference Configurator Item\',\n
object_id = \'default_configurator_system_preference\',\n object_id = \'default_configurator_system_preference\',\n
description="The default system parameters for the site are set on this \'\\\n description="The default system parameters for the site are set on this \'\\\n
\'preference",\n \'preference",\n
......
...@@ -94,7 +94,6 @@ ...@@ -94,7 +94,6 @@
<value> <value>
<list> <list>
<string>your_preferred_event_sender_email</string> <string>your_preferred_event_sender_email</string>
<string>your_price_currency</string>
<string>your_preferred_date_order</string> <string>your_preferred_date_order</string>
<string>your_lang</string> <string>your_lang</string>
</list> </list>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ListField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_price_currency</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>first_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>whitespace_preserve</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>first_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>whitespace_preserve</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> <string></string> </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>first_item</string> </key>
<value> <int>0</int> </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>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>What is the currency used in your company?</string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </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: here.getPriceCurrency()</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:here.BusinessConfiguration_getISOCurrencyList()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -76,6 +76,7 @@ bt5_installation_list = (\'erp5_simulation\',\n ...@@ -76,6 +76,7 @@ bt5_installation_list = (\'erp5_simulation\',\n
\'erp5_jquery_sheet_editor\',\n \'erp5_jquery_sheet_editor\',\n
\'erp5_xinha_editor\',\n \'erp5_xinha_editor\',\n
\'erp5_svg_editor\',\n \'erp5_svg_editor\',\n
# \'erp5_mail_reader\',\n
\'erp5_web_ung_core\',\n \'erp5_web_ung_core\',\n
\'erp5_web_ung_theme\',\n \'erp5_web_ung_theme\',\n
\'erp5_web_ung_role\')\n \'erp5_web_ung_role\')\n
......
...@@ -94,7 +94,6 @@ ...@@ -94,7 +94,6 @@
<list> <list>
<string>your_default_email_text</string> <string>your_default_email_text</string>
<string>your_default_telephone_text</string> <string>your_default_telephone_text</string>
<string>your_function</string>
</list> </list>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_function</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>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_empty_mode_function</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewConfiguratorFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -53,19 +53,19 @@ ...@@ -53,19 +53,19 @@
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
configuration_save_url = kw.get(\'configuration_save_url\', None)\n configuration_save_url = kw.get(\'configuration_save_url\', None)\n
company_employees_number = kw.get(\'company_employees_number\', 1)\n user_number = kw.get(\'user_number\', 1)\n
next_transition = context.getNextTransition().getRelativeUrl()\n next_transition = context.getNextTransition().getRelativeUrl()\n
\n \n
if company_employees_number > 1:\n if user_number > 1:\n
# mark next transition as multiple\n # mark next transition as multiple\n
context.setMultiEntryTransition(next_transition, company_employees_number)\n context.setMultiEntryTransition(next_transition, user_number)\n
else:\n else:\n
# explicitly reset next transition as not multiple because \n # explicitly reset next transition as not multiple because \n
# we may have already set it as multiple\n # we may have already set it as multiple\n
context.setMultiEntryTransition(next_transition, 0)\n context.setMultiEntryTransition(next_transition, 0)\n
\n \n
# store globally\n # store globally\n
context.setGlobalConfigurationAttr(company_employees_number=company_employees_number)\n context.setGlobalConfigurationAttr(user_number=user_number)\n
]]></string> </value> ]]></string> </value>
...@@ -80,7 +80,7 @@ context.setGlobalConfigurationAttr(company_employees_number=company_employees_nu ...@@ -80,7 +80,7 @@ context.setGlobalConfigurationAttr(company_employees_number=company_employees_nu
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Setup number of company\'s employees</string> </value> <value> <string>Setup number of users</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<key> <string>Default</string> </key> <key> <string>Default</string> </key>
<value> <value>
<list> <list>
<string>your_company_employees_number</string> <string>your_user_number</string>
</list> </list>
</value> </value>
</item> </item>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>your_company_employees_number</string> </value> <value> <string>your_user_number</string> </value>
</item> </item>
<item> <item>
<key> <string>message_values</string> </key> <key> <string>message_values</string> </key>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>_EtagSupport__etag</string> </key> <key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts01182930.25</string> </value> <value> <string>ts01321417.35</string> </value>
</item> </item>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
...@@ -20,204 +20,198 @@ ...@@ -20,204 +20,198 @@
</item> </item>
<item> <item>
<key> <string>data</string> </key> <key> <string>data</string> </key>
<value> <string encoding="base64">UEsDBBQAAAgAADe9ej6FbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz <value> <string encoding="base64">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 RQQAAAgAAABtZXRhLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cjxv
LjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8b2ZmaWNlOmRvY3VtZW50LW1ldGEgeG1sbnM6b2ZmaWNl ZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVu
PSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiIHhtbG5z ZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpkYz0iaHR0cDovL3B1 LzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIg
cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOm1ldGE9InVybjpvYXNpczpuYW1lczp0Yzpv eG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEu
cGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5zOm9vbz0iaHR0cDovL29wZW5vZmZpY2Uu MCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIHhtbG5zOmdy
b3JnLzIwMDQvb2ZmaWNlIiB4bWxuczpncmRkbD0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9nL2Rh ZGRsPSJodHRwOi8vd3d3LnczLm9yZy8yMDAzL2cvZGF0YS12aWV3IyIgb2ZmaWNlOnZlcnNpb249
dGEtdmlldyMiIG9mZmljZTp2ZXJzaW9uPSIxLjIiIGdyZGRsOnRyYW5zZm9ybWF0aW9uPSJodHRw IjEuMiIgZ3JkZGw6dHJhbnNmb3JtYXRpb249Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29m
Oi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZmZpY2UvMS4yL3hzbHQvb2RmMnJkZi54c2wiPjxvZmZp ZmljZS8xLjIveHNsdC9vZGYycmRmLnhzbCI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRvcj5P
Y2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4yJFVuaXggT3Blbk9mZmlj cGVuT2ZmaWNlLm9yZy8zLjIkVW5peCBPcGVuT2ZmaWNlLm9yZ19wcm9qZWN0LzMyMG0xMiRCdWls
ZS5vcmdfcHJvamVjdC8zMjBtMTIkQnVpbGQtOTQ4MzwvbWV0YTpnZW5lcmF0b3I+PG1ldGE6Y3Jl ZC05NDgzPC9tZXRhOmdlbmVyYXRvcj48bWV0YTpjcmVhdGlvbi1kYXRlPjIwMTEtMDEtMTFUMTI6
YXRpb24tZGF0ZT4yMDExLTAxLTExVDEyOjM3OjQ0PC9tZXRhOmNyZWF0aW9uLWRhdGU+PGRjOmxh Mzc6NDQ8L21ldGE6Y3JlYXRpb24tZGF0ZT48ZGM6bGFuZ3VhZ2U+ZnItRlI8L2RjOmxhbmd1YWdl
bmd1YWdlPmZyLUZSPC9kYzpsYW5ndWFnZT48bWV0YTplZGl0aW5nLWN5Y2xlcz4xNDwvbWV0YTpl PjxtZXRhOmVkaXRpbmctY3ljbGVzPjE1PC9tZXRhOmVkaXRpbmctY3ljbGVzPjxtZXRhOmVkaXRp
ZGl0aW5nLWN5Y2xlcz48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMDBINDNNMDdTPC9tZXRhOmVk bmctZHVyYXRpb24+UFQwMEg0M00yNVM8L21ldGE6ZWRpdGluZy1kdXJhdGlvbj48ZGM6ZGF0ZT4y
aXRpbmctZHVyYXRpb24+PGRjOmRhdGU+MjAxMS0wMy0yNlQyMDo0MTo0NjwvZGM6ZGF0ZT48bWV0 MDExLTAzLTI4VDExOjA5OjE0PC9kYzpkYXRlPjxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBtZXRh
YTpkb2N1bWVudC1zdGF0aXN0aWMgbWV0YTp0YWJsZS1jb3VudD0iMSIgbWV0YTpjZWxsLWNvdW50 OnRhYmxlLWNvdW50PSIxIiBtZXRhOmNlbGwtY291bnQ9IjE4IiBtZXRhOm9iamVjdC1jb3VudD0i
PSIyMSIgbWV0YTpvYmplY3QtY291bnQ9IjAiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1l MCIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMSIvPjxtZXRhOnVzZXItZGVm
PSJJbmZvIDEiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZvIDIiLz48bWV0YTp1 aW5lZCBtZXRhOm5hbWU9IkluZm8gMiIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9Iklu
c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZvIDMiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpu Zm8gMyIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gNCIvPjwvb2ZmaWNlOm1l
YW1lPSJJbmZvIDQiLz48L29mZmljZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50LW1ldGE+UEsDBBQA dGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAICAgAJ3F8PgAAAAAAAAAAAAAAABgAAABU
CAgIADe9ej4AAAAAAAAAAAAAAAAYAAAAVGh1bWJuYWlscy90aHVtYm5haWwucG5n7Vf3OxvcFzdK aHVtYm5haWxzL3RodW1ibmFpbC5wbmftl/k7G9gax3XMVKvTbVx0dIlWrakYFKNKplNqWirF2Gob
KqpaapSitKW1NzVr1ajxUquCij2KaKidoEqtorGamuVVSq0YMWOU1qg9K7HF3kqFJN887/snfH99 Q7RIqJCgJFqkiqqdoqG2UiIqESEhaRP7Oqg1dmMXagtJJG7mPve/uPenc57zvOd53ud9P+/3e07c
7y/3PM95zrnn3HvO53Nu3F/GukxALiAVFRWTvp62GWWvpqKiprpMQ5GgX6hOqKiYY/S1NcyDsndy Ayvzk9IK0hISEifv/mZqI16rJSSOSBz7RrwLKpfgSkicUrpreuv30LeciTDY73aAlk2gYqGiRs4x
gl9YdPN1V0a8NTMduY/WAX2NqC6w2cyg+iQaH23Edc+S/bqOtnxg9TgX2100/13RDM52a42qjPz3 /z57YGXKA02kxRl5OTOlhOv3TDPlrU3Tm12/xQceiaZd1cg8F5oo+y0wxvSHaO2zcc9NtU2vR9nF
nImmd+lZuq9l6okZJCL1/Eot4lcD5z6SBMege17Pg0Mf5qnbFx/hccrzjWuDOQ8HbJXC/yzG2jc7 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 RsgfLY3DpWe5Y+obGiJmmNjlTNn2PZNmrenRq8PHHSLSwGY+KwHWD5xSpW1u347GNyD6NVu3VEvp
wqNf1QwKG5U3rEASL4nANSVHox2QKiKJMCk9+zrPibope+6fQywH9SXoBYIvvVMbGOjZ5jkDT8Cv dJMkepeGdJWM2KOoAqIvw3GpvIKgoamJXiqIvSZCRc0qX5vaapZ337FIXcvxKDWaYLR1fnO3GEhv
bvroC+ddKAwJRRXDaFiL4uOBA3In2zNOGUKqJ9NOWSZOTdgG33nKWBE21xJMGXpl8YRI0KJ87E0l 3kib3TU4a5/sIgucH3YucX49D+lZ6ivSNWyQ1DLr1nC5tjOf5X6n/dD6Xk1Iuxn9pxX+alWvb9VA
f3cLC7aYYVeE4Zcqji5bTqc2DVZ7L9JHfhGRfsUn5yc7MlfNyCRiUsLE9LR7V+3qndbgOdmrg8pQ wtQobzb3QN0t8gT7t7ngqRfJ63f68/OXDlVVk/wNs/+r22Yq79q+/Vf2sysyD7z+afX/D/+HD3fB
/MCVEOrmtUEdSs8mNKasiZp02tYWF9MTATYAmaC0uFq2qzZSjCkt+8J3BlA7znfP0HZv5Oa388T+ 32vHFkkiM1zEv0aJu2ZWpoRf/4j6N1BLBwjcKvnWdwwAAFwOAABQSwMEFAAICAgAJ3F8PgAAAAAA
+NJviS6Clm//Xh/pKr8mIi5eD7YRoLiVN3ZtjcBBv7NuTVXuTZRlrr2AUCS+XEH3NApKsrOzi4Pq AAAAAAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgA
RUctFUOsGjG0JoLjJpxHSW2HAn98c5dFU1+bP39u0kzHlFp/7VdPaVlZfz5HVaiPut+IDscHssNP AAAAAgAAAAAAAABQSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABwAAABDb25maWd1cmF0aW9uczIv
H0jzGf7j0dFRXtih/g8+ppWGqhe9q/2Zs97+6zLD2NQ5gfRLeqk9YUfJiAsS96KSXk83MOxeaJFY cHJvZ3Jlc3NiYXIvUEsDBBQAAAgAACdxfD4AAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMy
dL1fTzIf39A+i0mE26oP5Hy3ea9lH767Jddg+04W3nvm3YDLGLfR7VGvQeG5w1dP57HS5oqjwGo9 L2Zsb2F0ZXIvUEsDBBQAAAgAACdxfD4AAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3Bv
Wv1ZtTkyt9DrmGxkApDCfYmy/Jwe/zxq0T/wlCp46V9S/E/xn+L/UAyQqZb/2n+wAnnUQfmYU+nr cHVwbWVudS9QSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvdG9v
GGtXaDpE/Q9QSwcIgcoiCaYNAAC/DwAAUEsDBBQACAgIADe9ej4AAAAAAAAAAAAAAAAnAAAAQ29u bHBhbmVsL1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9tZW51
ZmlndXJhdGlvbnMyL2FjY2VsZXJhdG9yL2N1cnJlbnQueG1sAwBQSwcIAAAAAAIAAAAAAAAAUEsD YmFyL1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi90b29sYmFy
BBQAAAgAADe9ej4AAAAAAAAAAAAAAAAcAAAAQ29uZmlndXJhdGlvbnMyL3Byb2dyZXNzYmFyL1BL L1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAHwAAAENvbmZpZ3VyYXRpb25zMi9pbWFnZXMvQml0
AwQUAAAIAAA3vXo+AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9mbG9hdGVyL1BLAwQU bWFwcy9QSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvc3RhdHVz
AAAIAAA3vXo+AAAAAAAAAAAAAAAAGgAAAENvbmZpZ3VyYXRpb25zMi9wb3B1cG1lbnUvUEsDBBQA YmFyL1BLAwQUAAgICAAncXw+AAAAAAAAAAAAAAAADAAAAHNldHRpbmdzLnhtbO1a31fqOBB+37+C
AAgAADe9ej4AAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3Rvb2xwYW5lbC9QSwMEFAAA 09c9SkFlF45wT6kCetWrLaDylrYD5JomPUlKwb9+U364WqkgtPd4zy4PQJvkm8nMZPJN2tNvU58U
CAAAN716PgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvbWVudWJhci9QSwMEFAAACAAA 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</string> </value>
aW9uczIvdG9vbGJhci9QSwECFAAUAAAIAAA3vXo+AAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAB1
IAAAQ29uZmlndXJhdGlvbnMyL2ltYWdlcy9CaXRtYXBzL1BLAQIUABQAAAgAADe9ej4AAAAAAAAA
AAAAAAAaAAAAAAAAAAAAAAAAALIgAABDb25maWd1cmF0aW9uczIvc3RhdHVzYmFyL1BLAQIUABQA
CAgIADe9ej5AFAh+8gQAAPshAAAMAAAAAAAAAAAAAAAAAOogAABzZXR0aW5ncy54bWxQSwECFAAU
AAgICAA3vXo+gT3rMlEBAADHBwAAFQAAAAAAAAAAAAAAAAAWJgAATUVUQS1JTkYvbWFuaWZlc3Qu
eG1sUEsFBgAAAAAQABAANgQAAKonAAAAAA==</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
...@@ -225,7 +219,7 @@ eG1sUEsFBgAAAAAQABAANgQAAKonAAAAAA==</string> </value> ...@@ -225,7 +219,7 @@ eG1sUEsFBgAAAAAQABAANgQAAKonAAAAAA==</string> </value>
</item> </item>
<item> <item>
<key> <string>size</string> </key> <key> <string>size</string> </key>
<value> <int>11254</int> </value> <value> <int>10924</int> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
......
7 8
\ No newline at end of file \ 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