Commit 24018004 authored by 's avatar

- fixed Chameleon compatibility

parent cb7bb7c0
...@@ -226,7 +226,7 @@ class WorkflowDefinitionConfigurator(Implicit): ...@@ -226,7 +226,7 @@ class WorkflowDefinitionConfigurator(Implicit):
'script_info' -- a list of mappings describing the scripts which 'script_info' -- a list of mappings describing the scripts which
provide added business logic (see '_extractScripts'). provide added business logic (see '_extractScripts').
""" """
workflow_info['manager_bypass'] = bool(workflow.manager_bypass) workflow_info['manager_bypass'] = str(bool(workflow.manager_bypass))
workflow_info['creation_guard'] = self._extractCreationGuard(workflow) workflow_info['creation_guard'] = self._extractCreationGuard(workflow)
workflow_info['state_variable'] = workflow.state_var workflow_info['state_variable'] = workflow.state_var
workflow_info['initial_state'] = workflow.initial_state workflow_info['initial_state'] = workflow.initial_state
...@@ -294,9 +294,9 @@ class WorkflowDefinitionConfigurator(Implicit): ...@@ -294,9 +294,9 @@ class WorkflowDefinitionConfigurator(Implicit):
info = {'id': k, info = {'id': k,
'description': v.description, 'description': v.description,
'for_catalog': bool(v.for_catalog), 'for_catalog': str(bool(v.for_catalog)),
'for_status': bool(v.for_status), 'for_status': str(bool(v.for_status)),
'update_always': bool(v.update_always), 'update_always': str(bool(v.update_always)),
'default_value': v.default_value, 'default_value': v.default_value,
'default_type': default_type, 'default_type': default_type,
'default_expr': v.getDefaultExprText(), 'default_expr': v.getDefaultExprText(),
...@@ -406,7 +406,7 @@ class WorkflowDefinitionConfigurator(Implicit): ...@@ -406,7 +406,7 @@ class WorkflowDefinitionConfigurator(Implicit):
for k, v in items: for k, v in items:
result.append({'name': k, result.append({'name': k,
'roles': v, 'roles': v,
'acquired': not isinstance(v, tuple)}) 'acquired': str(not isinstance(v, tuple))})
return result return result
......
...@@ -251,9 +251,9 @@ class WorkflowDefinitionConfiguratorTests(_WorkflowSetup, _GuardChecker): ...@@ -251,9 +251,9 @@ class WorkflowDefinitionConfiguratorTests(_WorkflowSetup, _GuardChecker):
self.assertEqual(info['description'], expected[0]) self.assertEqual(info['description'], expected[0])
self.assertEqual(info['default_value'], expected[1]) self.assertEqual(info['default_value'], expected[1])
self.assertEqual(info['default_expr'], expected[2]) self.assertEqual(info['default_expr'], expected[2])
self.assertEqual(info['for_catalog'], expected[3]) self.assertEqual(info['for_catalog'], str(expected[3]))
self.assertEqual(info['for_status'], expected[4]) self.assertEqual(info['for_status'], str(expected[4]))
self.assertEqual(info['update_always'], expected[5]) self.assertEqual(info['update_always'], str(expected[5]))
self._assertGuard(info, *expected[-4:]) self._assertGuard(info, *expected[-4:])
...@@ -297,7 +297,7 @@ class WorkflowDefinitionConfiguratorTests(_WorkflowSetup, _GuardChecker): ...@@ -297,7 +297,7 @@ class WorkflowDefinitionConfiguratorTests(_WorkflowSetup, _GuardChecker):
fp = [ x for x in permissions if x['name'] == ep_id ][0] fp = [ x for x in permissions if x['name'] == ep_id ][0]
self.assertEqual(fp['acquired'], self.assertEqual(fp['acquired'],
not isinstance(ep_roles, tuple)) str(not isinstance(ep_roles, tuple)))
self.assertEqual(len(fp['roles']), len(ep_roles)) self.assertEqual(len(fp['roles']), len(ep_roles))
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dc-workflow <dc-workflow xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:tal="http://xml.zope.org/namespaces/tal" workflow_id="dcworkflow"
workflow_id="dcworkflow" title="Some DCWorkflow"
title="Some DCWorkflow" description="Some Description"
description="Some Description" state_variable="review_state"
state_variable="review_state" initial_state="visible"
initial_state="visible" tal:define="info python: context.getWorkflowInfo(options['workflow_id'])"
tal:define="info python: here.getWorkflowInfo( tal:attributes="workflow_id info/id;
options[ 'workflow_id' ] )"
tal:attributes="workflow_id info/id;
title info/title; title info/title;
description info/description; description info/description;
manager_bypass info/manager_bypass; manager_bypass info/manager_bypass;
state_variable info/state_variable; state_variable info/state_variable;
initial_state info/initial_state" initial_state info/initial_state"><tal:case
><tal:case tal:condition="info/creation_guard"> tal:condition="info/creation_guard">
<instance-creation-conditions tal:define="creation_guard info/creation_guard"> <instance-creation-conditions
<guard tal:define="creation_guard info/creation_guard">
><tal:case tal:condition="creation_guard/guard_permissions"> <guard><tal:case
tal:condition="creation_guard/guard_permissions">
<guard-permission <guard-permission
tal:repeat="permission creation_guard/guard_permissions" tal:repeat="permission creation_guard/guard_permissions"
tal:content="permission">PERMISSION</guard-permission></tal:case tal:content="permission">PERMISSION</guard-permission></tal:case><tal:case
><tal:case tal:condition="creation_guard/guard_roles"> tal:condition="creation_guard/guard_roles">
<guard-role <guard-role
tal:repeat="role creation_guard/guard_roles" tal:repeat="role creation_guard/guard_roles"
tal:content="role">ROLE</guard-role></tal:case tal:content="role">ROLE</guard-role></tal:case><tal:case
><tal:case tal:condition="creation_guard/guard_groups"> tal:condition="creation_guard/guard_groups">
<guard-group <guard-group
tal:repeat="group creation_guard/guard_groups" tal:repeat="group creation_guard/guard_groups"
tal:content="group">GROUP</guard-group></tal:case tal:content="group">GROUP</guard-group></tal:case><tal:case
><tal:case tal:condition="creation_guard/guard_expr"> tal:condition="creation_guard/guard_expr">
<guard-expression <guard-expression
tal:content="creation_guard/guard_expr">EXPRESSION</guard-expression tal:content="creation_guard/guard_expr">EXPR</guard-expression></tal:case>
></tal:case>
</guard> </guard>
</instance-creation-conditions></tal:case> </instance-creation-conditions></tal:case><tal:case
tal:condition="info/permissions">
<permission <permission
tal:repeat="permission info/permissions" tal:repeat="permission info/permissions"
tal:content="permission">PERMISSION</permission> tal:content="permission">PERMISSION</permission></tal:case><tal:case
<state tal:condition="info/state_info">
state_id="pending" <state state_id="pending"
title="Waiting for reviewer" title="Waiting for reviewer"
tal:repeat="state info/state_info" tal:repeat="state info/state_info"
tal:attributes="state_id state/id; tal:attributes="state_id state/id;
title state/title; title state/title"><tal:case
" tal:condition="state/description">
><tal:case tal:condition="state/description">
<description <description
tal:content="state/description">DESCRIPTION</description></tal:case> tal:content="state/description">DESCRIPTION</description></tal:case><tal:case
<exit-transition tal:condition="state/transitions">
transition_id="TRANSITION_ID" <exit-transition transition_id="TRANSITION_ID"
tal:repeat="exit state/transitions" tal:repeat="exit state/transitions"
tal:attributes="transition_id exit" tal:attributes="transition_id exit"/></tal:case><tal:case
/> tal:condition="state/permissions">
<permission-map <permission-map name=""
name="" acquired="True"
acquired="True" tal:repeat="perm state/permissions"
tal:repeat="perm state/permissions" tal:attributes="name perm/name;
tal:attributes="name perm/name; acquired perm/acquired"><tal:case
acquired perm/acquired; tal:condition="perm/roles">
">
<permission-role <permission-role
tal:repeat="role perm/roles" tal:repeat="role perm/roles"
tal:content="role">ROLE</permission-role> tal:content="role">ROLE</permission-role></tal:case>
</permission-map> </permission-map></tal:case><tal:case
<group-map tal:condition="state/groups">
name="" <group-map name=""
tal:repeat="group state/groups" tal:repeat="group state/groups"
tal:attributes="name python: group[ 0 ]; tal:attributes="name python: group[0]">
">
<group-role <group-role
tal:repeat="role python: group[ 1 ]" tal:repeat="role python: group[1]"
tal:content="role">ROLE</group-role> tal:content="role">ROLE</group-role>
</group-map> </group-map></tal:case><tal:case
<assignment tal:condition="state/variables">
name="VAR_NAME" <assignment name="VAR_NAME"
type="VAR_TYPE" type="VAR_TYPE"
tal:repeat="var state/variables" tal:repeat="var state/variables"
tal:attributes="name var/name; tal:attributes="name var/name;
type var/type; type var/type"
" tal:content="var/value">VALUE</assignment></tal:case>
tal:content="var/value">VALUE</assignment> </state></tal:case><tal:case
</state> tal:condition="info/transition_info">
<transition <transition transition_id="Publish"
transition_id="Publish" title="Reviewer publishes content"
title="Reviewer publishes content" new_state="published"
new_state="published" trigger="USER"
trigger="USER" before_script=""
before_script="" after_script=""
after_script="" tal:repeat="transition info/transition_info"
tal:repeat="transition info/transition_info" tal:attributes="transition_id transition/id;
tal:attributes="transition_id transition/id;
title transition/title; title transition/title;
new_state transition/new_state_id; new_state transition/new_state_id;
trigger transition/trigger_type; trigger transition/trigger_type;
before_script transition/script_name; before_script transition/script_name;
after_script transition/after_script_name; after_script transition/after_script_name"><tal:case
" tal:condition="transition/description">
><tal:case tal:condition="transition/description">
<description <description
tal:content="transition/description">DESCRIPTION</description></tal:case> tal:content="transition/description">DESCRIPTION</description></tal:case>
<action <action url="URL"
url="URL" category="CATEGORY"
category="CATEGORY" tal:condition="transition/actbox_name"
tal:condition="transition/actbox_name" tal:attributes="url transition/actbox_url;
tal:attributes="url transition/actbox_url;
icon transition/actbox_icon; icon transition/actbox_icon;
category transition/actbox_category; category transition/actbox_category"
" tal:content="transition/actbox_name">ACTION NAME</action>
tal:content="transition/actbox_name">ACTION NAME</action> <guard><tal:case
<guard tal:condition="transition/guard_permissions">
><tal:case tal:condition="transition/guard_permissions">
<guard-permission <guard-permission
tal:repeat="permission transition/guard_permissions" tal:repeat="permission transition/guard_permissions"
tal:content="permission">PERMISSION</guard-permission></tal:case tal:content="permission">PERMISSION</guard-permission></tal:case><tal:case
><tal:case tal:condition="transition/guard_roles"> tal:condition="transition/guard_roles">
<guard-role <guard-role
tal:repeat="role transition/guard_roles" tal:repeat="role transition/guard_roles"
tal:content="role">ROLE</guard-role></tal:case tal:content="role">ROLE</guard-role></tal:case><tal:case
><tal:case tal:condition="transition/guard_groups"> tal:condition="transition/guard_groups">
<guard-group <guard-group
tal:repeat="group transition/guard_groups" tal:repeat="group transition/guard_groups"
tal:content="group">GROUP</guard-group></tal:case tal:content="group">GROUP</guard-group></tal:case><tal:case
><tal:case tal:condition="transition/guard_expr"> tal:condition="transition/guard_expr">
<guard-expression <guard-expression
tal:content="transition/guard_expr">EXPRESSION</guard-expression tal:content="transition/guard_expr">EXPRESSION</guard-expression></tal:case>
></tal:case> </guard><tal:case
</guard> tal:condition="transition/variables">
<assignment <assignment name="VAR_NAME"
name="VAR_NAME" tal:repeat="var transition/variables"
tal:repeat="var transition/variables" tal:attributes="name var/name"
tal:attributes="name var/name" tal:content="var/expr">EXPRESSION</assignment></tal:case>
tal:content="var/expr">EXPRESSION</assignment> </transition></tal:case><tal:case
</transition> tal:condition="info/worklist_info">
<worklist <worklist worklist_id="reviewer_queue"
worklist_id="reviewer_queue" title="For Review"
title="For Review" tal:repeat="worklist info/worklist_info"
tal:repeat="worklist info/worklist_info" tal:attributes="worklist_id worklist/id;
tal:attributes="worklist_id worklist/id; title worklist/title"><tal:case
title worklist/title; tal:condition="worklist/description">
"
><tal:case tal:condition="worklist/description">
<description <description
tal:content="worklist/description">DESCRIPTION</description></tal:case> tal:content="worklist/description">DESCRIPTION</description></tal:case>
<action <action url="URL"
url="URL" category="CATEGORY"
category="CATEGORY" tal:condition="worklist/actbox_name"
tal:condition="worklist/actbox_name" tal:attributes="url worklist/actbox_url;
tal:attributes="url worklist/actbox_url;
category worklist/actbox_category; category worklist/actbox_category;
icon worklist/actbox_icon; icon worklist/actbox_icon"
" tal:content="worklist/actbox_name">ACTION NAME</action>
tal:content="worklist/actbox_name">ACTION NAME</action> <guard><tal:case
<guard tal:condition="worklist/guard_permissions">
><tal:case tal:condition="worklist/guard_permissions">
<guard-permission <guard-permission
tal:repeat="permission worklist/guard_permissions" tal:repeat="permission worklist/guard_permissions"
tal:content="permission">PERMISSION</guard-permission></tal:case tal:content="permission">PERMISSION</guard-permission></tal:case><tal:case
><tal:case tal:condition="worklist/guard_roles"> tal:condition="worklist/guard_roles">
<guard-role <guard-role
tal:repeat="role worklist/guard_roles" tal:repeat="role worklist/guard_roles"
tal:content="role">ROLE</guard-role></tal:case tal:content="role">ROLE</guard-role></tal:case><tal:case
><tal:case tal:condition="worklist/guard_groups"> tal:condition="worklist/guard_groups">
<guard-group <guard-group
tal:repeat="group worklist/guard_groups" tal:repeat="group worklist/guard_groups"
tal:content="group">GROUP</guard-group></tal:case tal:content="group">GROUP</guard-group></tal:case><tal:case
><tal:case tal:condition="worklist/guard_expr"> tal:condition="worklist/guard_expr">
<guard-expression <guard-expression
tal:content="worklist/guard_expr">EXPRESSION</guard-expression tal:content="worklist/guard_expr">EXPRESSION</guard-expression></tal:case>
></tal:case>
</guard> </guard>
<match <match name="review_state"
name="review_state" values="pending"
values="pending" tal:repeat="match worklist/var_match"
tal:repeat="match worklist/var_match" tal:attributes="name python: match[0];
tal:attributes="name python: match[ 0 ]; values python: match[1]"/>
values python: match[ 1 ]; </worklist></tal:case><tal:case
" tal:condition="info/variable_info">
/> <variable variable_id="action"
</worklist> for_catalog="True"
<variable for_status="True"
variable_id="action" update_always="True"
for_catalog="True" tal:repeat="variable info/variable_info"
for_status="True" tal:attributes="variable_id variable/id;
update_always="True"
tal:repeat="variable info/variable_info"
tal:attributes="variable_id variable/id;
for_catalog variable/for_catalog; for_catalog variable/for_catalog;
for_status variable/for_status; for_status variable/for_status;
update_always variable/update_always; update_always variable/update_always"><tal:case
" tal:condition="variable/description">
><tal:case tal:condition="variable/description">
<description <description
tal:content="variable/description">DESCRIPTION</description></tal:case> tal:content="variable/description">DESCRIPTION</description></tal:case>
<default> <default>
<value <value type="VAR_TYPE"
type="VAR_TYPE" tal:attributes="type variable/default_type"
tal:attributes="type variable/default_type" tal:condition="variable/default_value"
tal:condition="variable/default_value" tal:content="variable/default_value">VALUE</value>
tal:content="variable/default_value">VALUE</value>
<expression <expression
tal:condition="variable/default_expr" tal:condition="variable/default_expr"
tal:content="variable/default_expr">EXPRESSION</expression> tal:content="variable/default_expr">EXPRESSION</expression>
</default> </default>
<guard <guard><tal:case
><tal:case tal:condition="variable/guard_permissions"> tal:condition="variable/guard_permissions">
<guard-permission <guard-permission
tal:repeat="permission variable/guard_permissions" tal:repeat="permission variable/guard_permissions"
tal:content="permission">PERMISSION</guard-permission></tal:case tal:content="permission">PERMISSION</guard-permission></tal:case><tal:case
><tal:case tal:condition="variable/guard_roles"> tal:condition="variable/guard_roles">
<guard-role <guard-role
tal:repeat="role variable/guard_roles" tal:repeat="role variable/guard_roles"
tal:content="role">ROLE</guard-role></tal:case tal:content="role">ROLE</guard-role></tal:case><tal:case
><tal:case tal:condition="variable/guard_groups"> tal:condition="variable/guard_groups">
<guard-group <guard-group
tal:repeat="group variable/guard_groups" tal:repeat="group variable/guard_groups"
tal:content="group">GROUP</guard-group></tal:case tal:content="group">GROUP</guard-group></tal:case><tal:case
><tal:case tal:condition="variable/guard_expr"> tal:condition="variable/guard_expr">
<guard-expression <guard-expression
tal:content="variable/guard_expr">EXPRESSION</guard-expression tal:content="variable/guard_expr">EXPRESSION</guard-expression></tal:case>
></tal:case>
</guard> </guard>
</variable> </variable></tal:case><tal:case
<script tal:condition="info/script_info">
script_id="SCRIPT_ID" <script script_id="SCRIPT_ID"
type="Script (Python)" type="Script (Python)"
filename="/path/to/SCRIPT_ID.py" filename="/path/to/SCRIPT_ID.py"
module="" module=""
function="" function=""
tal:repeat="script info/script_info" tal:repeat="script info/script_info"
tal:attributes="script_id script/id; tal:attributes="script_id script/id;
type script/meta_type; type script/meta_type;
filename script/filename; filename script/filename;
module script/module; module script/module;
function script/function function script/function"/></tal:case>
"
/>
</dc-workflow> </dc-workflow>
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