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 @@
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -24,12 +18,7 @@
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -37,12 +26,7 @@
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
......@@ -50,13 +34,7 @@
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</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 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>destination/workflow_module/ung_configuration_workflow/65</string>
<string>destination/workflow_module/ung_configuration_workflow/32</string>
</tuple>
</value>
</item>
......
......@@ -89,20 +89,7 @@ if business_template is not None:\n
if obj is not None and hasattr(obj, \'getPortalType\'):\n
# XXX This hardcoded list is a bit inconvinient.\n
if obj.getPortalType() in (\'Person\', \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
\'Organisation\'):\n
if isTransitionPossible(obj, \'validate\'):\n
obj.validate()\n
print "Validated: ", obj.getRelativeUrl()\n
......
......@@ -53,50 +53,6 @@
<value> <string>configuration_save = context.restrictedTraverse(configuration_save_url)\n
group_id = context.getGlobalConfigurationAttr(\'group_id\')\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
configuration_save.addConfigurationItem("Export Customer BT5 Configurator Item")\n
</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 @@
<key> <string>_body</string> </key>
<value> <string>configuration_save_url = kw.get(\'configuration_save_url\', None)\n
configuration_save = context.restrictedTraverse(configuration_save_url)\n
organisation_id = context.getGlobalConfigurationAttr(\'organisation_id\')\n
group_id = context.getGlobalConfigurationAttr(\'group_id\')\n
\n
company_user_number = context.getGlobalConfigurationAttr(\'company_employees_number\')\n
user_number = context.getGlobalConfigurationAttr(\'user_number\')\n
\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
\n
if company_user_number == 1:\n
function = "function/ung_user"\n
if user_number == 1:\n
# only one user\n
for key in (\'configuration_save_url\', \'transition\', \'client_id\', \'password_confirm\'):\n
kw.pop(key, None)\n
function = kw.pop(\'function\', None)\n
configuration_save.addConfigurationItem("Person Configurator Item", \n
organisation_id = organisation_id,\n
function = function,\n
group_id = group_id,\n
**kw)\n
configuration_save.addConfigurationItem("Person Configurator Item",\n
function=function,\n
**kw)\n
else:\n
# many users\n
context.log(company_user_number)\n
for employee_counter in range(0, company_user_number):\n
for counter in range(user_number):\n
user_kw = {}\n
for key in form_keys:\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
function = user_kw.pop(\'function\', None)\n
user_kw.pop(\'password_confirm\', None)\n
configuration_save.addConfigurationItem("Person Configurator Item", \n
organisation_id = organisation_id,\n
function = function,\n
group_id = group_id,\n
configuration_save.addConfigurationItem("Person Configurator Item",\n
function=function,\n
**user_kw)\n
</string> </value>
</item>
......
......@@ -51,27 +51,12 @@
<item>
<key> <string>_body</string> </key>
<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
organisation_configurator_item = configuration_save.addConfigurationItem(\n
"Organisation Configurator Item",\n
group=group_id,\n
site=\'main\',\n
**kw)\n
\n
configuration_save.addConfigurationItem("Category Configurator Item",\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
context.setGlobalConfigurationAttr(company_email=kw.get(\'default_email_text\'))\n
\n
# store globally company\'s configurator item which we can use later to reconfigure\n
context.setGlobalConfigurationAttr(\n
......
......@@ -52,9 +52,7 @@
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
# XXX-Luke: Beware, I will modify this script *very* much\n
portal = context.getPortalObject()\n
\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
......@@ -68,62 +66,6 @@ company_email = context.getGlobalConfigurationAttr(\'company_email\')\n
if preferred_event_sender_email in (\'\', None,):\n
preferred_event_sender_email = company_email\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
prefs = dict(\n
# UI\n
......@@ -139,17 +81,11 @@ prefs = dict(\n
preferred_textarea_height = 5,\n
preferred_report_style = \'ODT\',\n
preferred_report_format = \'pdf\',\n
preferred_money_quantity_field_width = 10, # TODO: adapt this\n
# based on the selected\n
# currency, XOF needs\n
# more than 10 for\n
# example\n
preferred_money_quantity_field_width = 10,\n
preferred_html_style_access_tab = 1,\n
preferred_quantity_field_width = 8,\n
# accounting\n
preferred_accounting_transaction_currency = \'currency_module/%s\' % \\\n
currency_reference,\n
)\n
preferred_ooodoc_server_address = "localhost",\n
preferred_ooodoc_server_port_number = 8011)\n
\n
configuration_save.addConfigurationItem(\n
\'Preference Configurator Item\',\n
......@@ -162,67 +98,18 @@ configuration_save.addConfigurationItem(\n
# configure system preferences\n
# some preparation\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_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
\'(?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
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
\'-z]{2})[^-]*)?\',\n
preferred_document_classification = \'collaborative/team\',\n
preferred_synchronous_metadata_discovery = 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
preferred_redirect_to_document = True)\n
\n
configuration_save.addConfigurationItem(\n
\'System Preference Configurator Item\',\n
configuration_save.addConfigurationItem(\'System Preference Configurator Item\',\n
object_id = \'default_configurator_system_preference\',\n
description="The default system parameters for the site are set on this \'\\\n
\'preference",\n
......
......@@ -94,7 +94,6 @@
<value>
<list>
<string>your_preferred_event_sender_email</string>
<string>your_price_currency</string>
<string>your_preferred_date_order</string>
<string>your_lang</string>
</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
\'erp5_jquery_sheet_editor\',\n
\'erp5_xinha_editor\',\n
\'erp5_svg_editor\',\n
# \'erp5_mail_reader\',\n
\'erp5_web_ung_core\',\n
\'erp5_web_ung_theme\',\n
\'erp5_web_ung_role\')\n
......
......@@ -94,7 +94,6 @@
<list>
<string>your_default_email_text</string>
<string>your_default_telephone_text</string>
<string>your_function</string>
</list>
</value>
</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 @@
<value> <string encoding="cdata"><![CDATA[
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
\n
if company_employees_number > 1:\n
if user_number > 1:\n
# mark next transition as multiple\n
context.setMultiEntryTransition(next_transition, company_employees_number)\n
context.setMultiEntryTransition(next_transition, user_number)\n
else:\n
# explicitly reset next transition as not multiple because \n
# we may have already set it as multiple\n
context.setMultiEntryTransition(next_transition, 0)\n
\n
# store globally\n
context.setGlobalConfigurationAttr(company_employees_number=company_employees_number)\n
context.setGlobalConfigurationAttr(user_number=user_number)\n
]]></string> </value>
......@@ -80,7 +80,7 @@ context.setGlobalConfigurationAttr(company_employees_number=company_employees_nu
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Setup number of company\'s employees</string> </value>
<value> <string>Setup number of users</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -68,7 +68,7 @@
<key> <string>Default</string> </key>
<value>
<list>
<string>your_company_employees_number</string>
<string>your_user_number</string>
</list>
</value>
</item>
......
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>your_company_employees_number</string> </value>
<value> <string>your_user_number</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
......
......@@ -8,7 +8,7 @@
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts01182930.25</string> </value>
<value> <string>ts01321417.35</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
......@@ -20,204 +20,198 @@
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">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
0DfqVaH8scz5vGDWjEafRGkTjkntBZOU2NrnSjoqhX0VB3DQ6E0twr7r6KTzqYc65fVbgATdlqjQ
dzPHB1Gpzk7fFFnkD4D6rurHHWwryEQMclwGanOM1Bb2fLxaO3OJEBDUkzDqw3pbhyacPX0SQWtk
5rFMYYnTRC90J2UN785uhFL67Ri6/gqNu1T78hXchGZwwMeuP6gXhQnRm39L0dMrGyFj/TUqnIXX
1yTzzDnvXYTmxyAKHNsPngCJrhsxTD7oSz6Pm7P9goT6j+OnhYAWIqW9VOnt9X+QS/9Vxu7PbDR6
YtULGS6divLYNplJrelcY9OuhYGDzrq/vjEfmIv6d7ml1KLXt7e3N+h0sp4pTkg4ib2OozvcS2hT
D72r0HLjrL/Ve6kH2m3b0q2jxl5rrudCo6pD+lkXUI/H+6h9V39MO8PsvMds0xOk+hrTDn0k2d5D
i1NM8TbEjh/1iOhY6kyZGjqxDi0WHe22oIdzoMB05PDMCKMoCC+D+ZW/nl+h8BLpmdoLDVx/7zUO
g/fzcPk4Wj6+ck4PpU/Xv6+WUx5qA80zZr1YtIF27l/KPTRc7Wj4v7DW/wBQSwcIqAovHhIGAAAC
GwAAUEsDBBQAAAgAADe9ej7t1HlsRQQAAEUEAAAIAAAAbWV0YS54bWw8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8b2ZmaWNlOmRvY3VtZW50LW1ldGEgeG1sbnM6b2ZmaWNl
PSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpkYz0iaHR0cDovL3B1
cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOm1ldGE9InVybjpvYXNpczpuYW1lczp0Yzpv
cGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5zOm9vbz0iaHR0cDovL29wZW5vZmZpY2Uu
b3JnLzIwMDQvb2ZmaWNlIiB4bWxuczpncmRkbD0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9nL2Rh
dGEtdmlldyMiIG9mZmljZTp2ZXJzaW9uPSIxLjIiIGdyZGRsOnRyYW5zZm9ybWF0aW9uPSJodHRw
Oi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZmZpY2UvMS4yL3hzbHQvb2RmMnJkZi54c2wiPjxvZmZp
Y2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4yJFVuaXggT3Blbk9mZmlj
ZS5vcmdfcHJvamVjdC8zMjBtMTIkQnVpbGQtOTQ4MzwvbWV0YTpnZW5lcmF0b3I+PG1ldGE6Y3Jl
YXRpb24tZGF0ZT4yMDExLTAxLTExVDEyOjM3OjQ0PC9tZXRhOmNyZWF0aW9uLWRhdGU+PGRjOmxh
bmd1YWdlPmZyLUZSPC9kYzpsYW5ndWFnZT48bWV0YTplZGl0aW5nLWN5Y2xlcz4xNDwvbWV0YTpl
ZGl0aW5nLWN5Y2xlcz48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMDBINDNNMDdTPC9tZXRhOmVk
aXRpbmctZHVyYXRpb24+PGRjOmRhdGU+MjAxMS0wMy0yNlQyMDo0MTo0NjwvZGM6ZGF0ZT48bWV0
YTpkb2N1bWVudC1zdGF0aXN0aWMgbWV0YTp0YWJsZS1jb3VudD0iMSIgbWV0YTpjZWxsLWNvdW50
PSIyMSIgbWV0YTpvYmplY3QtY291bnQ9IjAiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1l
PSJJbmZvIDEiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZvIDIiLz48bWV0YTp1
c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJJbmZvIDMiLz48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpu
YW1lPSJJbmZvIDQiLz48L29mZmljZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50LW1ldGE+UEsDBBQA
CAgIADe9ej4AAAAAAAAAAAAAAAAYAAAAVGh1bWJuYWlscy90aHVtYm5haWwucG5n7Vf3OxvcFzdK
KqpaapSitKW1NzVr1ajxUquCij2KaKidoEqtorGamuVVSq0YMWOU1qg9K7HF3kqFJN887/snfH99
7y/3PM95zrnn3HvO53Nu3F/GukxALiAVFRWTvp62GWWvpqKiprpMQ5GgX6hOqKiYY/S1NcyDsndy
gl9YdPN1V0a8NTMduY/WAX2NqC6w2cyg+iQaH23Edc+S/bqOtnxg9TgX2100/13RDM52a42qjPz3
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
eG1sUEsFBgAAAAAQABAANgQAAKonAAAAAA==</string> </value>
<value> <string encoding="base64">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
SmztcyUdlcK+igM4aPSmlmHfdXTW+dRDnfL6LUCCbktU6LuZ46OoVGenr4ss8gdAfVf14w62FWQi
BjkuA7U9RWoHez5drZ25RAgI6lkY9WG9q0MTzp4+iaA1MvNYprDEaaIXupOyhndnt0Ip/XYMXX+F
xl2qffkCbkIzOOBj1x/Ui8KE6M2/pujpla2Qsf4aFc7CxYJknjnnvavQ/BhEgWP7wRMg0aIRw+S9
vuTzuDnbr0io/zh+WghoIVLaS5XeXv8HufRfZez+zEajJ1a9kOHSqShPbZOZ1JouNTbtWhg46Kz7
mxvzgbmof5c7Si16c3t7e4POJ+uZ4oyEs9jrOLrDvYQ29di7Ci03zvobvZd6oN22Ld0mauy15nou
NKo6pF90AfV4vI/at/XHtAvMznvMNj1Bqq8x7dAHku09tDjFFG9D7PhRj4iOpc6UqaEz69Bi0dFu
C3o4BwpMRw7PjDCKgvA6mC/8zXyBwmukZ2ovNHDzrdc4DN5H0SpcrqLHzumh9On698VyykNtoHnG
bJbLNtDO/Uu5h4arHQ3/F9bmH1BLBwicP2gOEAYAAAIbAABQSwMEFAAACAAAJ3F8PiXXUxhFBAAA
RQQAAAgAAABtZXRhLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cjxv
ZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVu
ZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIg
eG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEu
MCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIHhtbG5zOmdy
ZGRsPSJodHRwOi8vd3d3LnczLm9yZy8yMDAzL2cvZGF0YS12aWV3IyIgb2ZmaWNlOnZlcnNpb249
IjEuMiIgZ3JkZGw6dHJhbnNmb3JtYXRpb249Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29m
ZmljZS8xLjIveHNsdC9vZGYycmRmLnhzbCI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRvcj5P
cGVuT2ZmaWNlLm9yZy8zLjIkVW5peCBPcGVuT2ZmaWNlLm9yZ19wcm9qZWN0LzMyMG0xMiRCdWls
ZC05NDgzPC9tZXRhOmdlbmVyYXRvcj48bWV0YTpjcmVhdGlvbi1kYXRlPjIwMTEtMDEtMTFUMTI6
Mzc6NDQ8L21ldGE6Y3JlYXRpb24tZGF0ZT48ZGM6bGFuZ3VhZ2U+ZnItRlI8L2RjOmxhbmd1YWdl
PjxtZXRhOmVkaXRpbmctY3ljbGVzPjE1PC9tZXRhOmVkaXRpbmctY3ljbGVzPjxtZXRhOmVkaXRp
bmctZHVyYXRpb24+UFQwMEg0M00yNVM8L21ldGE6ZWRpdGluZy1kdXJhdGlvbj48ZGM6ZGF0ZT4y
MDExLTAzLTI4VDExOjA5OjE0PC9kYzpkYXRlPjxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBtZXRh
OnRhYmxlLWNvdW50PSIxIiBtZXRhOmNlbGwtY291bnQ9IjE4IiBtZXRhOm9iamVjdC1jb3VudD0i
MCIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gMSIvPjxtZXRhOnVzZXItZGVm
aW5lZCBtZXRhOm5hbWU9IkluZm8gMiIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9Iklu
Zm8gMyIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gNCIvPjwvb2ZmaWNlOm1l
dGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAICAgAJ3F8PgAAAAAAAAAAAAAAABgAAABU
aHVtYm5haWxzL3RodW1ibmFpbC5wbmftl/k7G9gax3XMVKvTbVx0dIlWrakYFKNKplNqWirF2Gob
Q7RIqJCgJFqkiqqdoqG2UiIqESEhaRP7Oqg1dmMXagtJJG7mPve/uPenc57zvOd53ud9P+/3e07c
Ayvzk9IK0hISEifv/mZqI16rJSSOSBz7RrwLKpfgSkicUrpreuv30LeciTDY73aAlk2gYqGiRs4x
/z57YGXKA02kxRl5OTOlhOv3TDPlrU3Tm12/xQceiaZd1cg8F5oo+y0wxvSHaO2zcc9NtU2vR9nF
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
RsgfLY3DpWe5Y+obGiJmmNjlTNn2PZNmrenRq8PHHSLSwGY+KwHWD5xSpW1u347GNyD6NVu3VEvp
dJMkepeGdJWM2KOoAqIvw3GpvIKgoamJXiqIvSZCRc0qX5vaapZ337FIXcvxKDWaYLR1fnO3GEhv
3kib3TU4a5/sIgucH3YucX49D+lZ6ivSNWyQ1DLr1nC5tjOf5X6n/dD6Xk1Iuxn9pxX+alWvb9VA
wtQobzb3QN0t8gT7t7ngqRfJ63f68/OXDlVVk/wNs/+r22Yq79q+/Vf2sysyD7z+afX/D/+HD3fB
32vHFkkiM1zEv0aJu2ZWpoRf/4j6N1BLBwjcKvnWdwwAAFwOAABQSwMEFAAICAgAJ3F8PgAAAAAA
AAAAAAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgA
AAAAAgAAAAAAAABQSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABwAAABDb25maWd1cmF0aW9uczIv
cHJvZ3Jlc3NiYXIvUEsDBBQAAAgAACdxfD4AAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMy
L2Zsb2F0ZXIvUEsDBBQAAAgAACdxfD4AAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3Bv
cHVwbWVudS9QSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvdG9v
bHBhbmVsL1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9tZW51
YmFyL1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi90b29sYmFy
L1BLAwQUAAAIAAAncXw+AAAAAAAAAAAAAAAAHwAAAENvbmZpZ3VyYXRpb25zMi9pbWFnZXMvQml0
bWFwcy9QSwMEFAAACAAAJ3F8PgAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvc3RhdHVz
YmFyL1BLAwQUAAgICAAncXw+AAAAAAAAAAAAAAAADAAAAHNldHRpbmdzLnhtbO1a31fqOBB+37+C
09c9SkFlF45wT6kCetWrLaDylrYD5JomPUlKwb9+U364WqkgtPd4zy4PQJvkm8nMZPJN2tNvU58U
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</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -225,7 +219,7 @@ eG1sUEsFBgAAAAAQABAANgQAAKonAAAAAA==</string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>11254</int> </value>
<value> <int>10924</int> </value>
</item>
<item>
<key> <string>title</string> </key>
......
7
\ No newline at end of file
8
\ 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