From 3f1bc386ec6782dbe56639aae611cff4d7368c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20W=C3=B6lfel?= <klaus@nexedi.com> Date: Fri, 16 Jan 2015 20:24:45 +0100 Subject: [PATCH] erp5_base: set function on movement from resource by interaction script --- .../setSourceDestinationFunction.xml | 100 +++++++++++++++++ .../Movement_copyFunctionFromResource.xml | 101 ++++++++++++++++++ 2 files changed, 201 insertions(+) create mode 100644 bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/interactions/setSourceDestinationFunction.xml create mode 100644 bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyFunctionFromResource.xml diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/interactions/setSourceDestinationFunction.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/interactions/setSourceDestinationFunction.xml new file mode 100644 index 0000000000..b41a87d69c --- /dev/null +++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/interactions/setSourceDestinationFunction.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>activate_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> + <list> + <string>Movement_copyFunctionFromResource</string> + </list> + </value> + </item> + <item> + <key> <string>before_commit_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>setSourceDestinationFunction</string> </value> + </item> + <item> + <key> <string>method_id</string> </key> + <value> + <list> + <string>_setResource.*</string> + </list> + </value> + </item> + <item> + <key> <string>once_per_transaction</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>portal_type_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type_group_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>temporary_document_disallowed</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyFunctionFromResource.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyFunctionFromResource.xml new file mode 100644 index 0000000000..a92d43fed6 --- /dev/null +++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyFunctionFromResource.xml @@ -0,0 +1,101 @@ +<?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 encoding="cdata"><![CDATA[ + +\'\'\'Lookup source function & destination function from applicable paths and copy\n +them on this movement.\n +\'\'\'\n +movement = state_change[\'object\']\n +searchPredicateList = movement.getPortalObject().portal_domains.searchPredicateList\n +\n +resource = movement.getResourceValue()\n +if resource is not None:\n + if not movement.getDestinationFunction():\n + for predicate in searchPredicateList(\n + context=movement, portal_type=\'Purchase Supply Line\'):\n + if predicate.getDestinationFunction():\n + movement.setDestinationFunction(predicate.getDestinationFunction())\n + break\n + if not movement.getSourceFunction():\n + for predicate in searchPredicateList(\n + context=movement, portal_type=\'Sale Supply Line\'):\n + if predicate.getSourceFunction():\n + movement.setSourceFunction(predicate.getSourceFunction())\n + break\n +else:\n + movement.setSourceFunction(None)\n + movement.setDestinationFunction(None)\n + + +]]></string> </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>state_change</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>Movement_copyFunctionFromResource</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> -- GitLab