From b6b6a521baa8b4ee079e9681792669ab89f27e74 Mon Sep 17 00:00:00 2001 From: Daniel Marks Date: Wed, 25 Jun 2014 23:35:15 +0930 Subject: [PATCH] Apply the default workflow in the placeful workflow policy to all addable types --- .../ploneintranet_policy.xml | 11 --------- src/ploneintranet/workspace/setuphandlers.py | 12 ++++++++++ .../workspace/tests/test_setuphandlers.py | 24 +++++++++++++++++++ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/ploneintranet/workspace/profiles/default/portal_placeful_workflow/ploneintranet_policy.xml b/src/ploneintranet/workspace/profiles/default/portal_placeful_workflow/ploneintranet_policy.xml index 73f3103..a52cbf5 100644 --- a/src/ploneintranet/workspace/profiles/default/portal_placeful_workflow/ploneintranet_policy.xml +++ b/src/ploneintranet/workspace/profiles/default/portal_placeful_workflow/ploneintranet_policy.xml @@ -5,16 +5,5 @@ - - - - - - - - - - - diff --git a/src/ploneintranet/workspace/setuphandlers.py b/src/ploneintranet/workspace/setuphandlers.py index e4359ef..34e50a9 100644 --- a/src/ploneintranet/workspace/setuphandlers.py +++ b/src/ploneintranet/workspace/setuphandlers.py @@ -44,3 +44,15 @@ def post_install(context): # deactivate the enumerate groups interface for collective.workspace activatePluginInterfaces(portal, 'workspace_groups', disable=['IGroupEnumerationPlugin']) + + # Set up the ploneintranet policy for all addable types + default_types = [] + types = api.portal.get_tool('portal_types') + for type_info in types.listTypeInfo(): + if type_info.global_allow: + default_types.append(type_info.getId()) + + if default_types: + pwftool = api.portal.get_tool('portal_placeful_workflow') + policy = pwftool['ploneintranet_policy'] + policy.setChainForPortalTypes(default_types, ('(Default)',)) diff --git a/src/ploneintranet/workspace/tests/test_setuphandlers.py b/src/ploneintranet/workspace/tests/test_setuphandlers.py index 26c2d60..89ac8c0 100644 --- a/src/ploneintranet/workspace/tests/test_setuphandlers.py +++ b/src/ploneintranet/workspace/tests/test_setuphandlers.py @@ -52,3 +52,27 @@ def test_workspace_groups_hidden(self): groupname, [x['id'] for x in group_info], ) + + def test_placeful_workflow_policy(self): + """ globally addable types should be configured to use the default + chain in the ploneintranet policy """ + + pwftool = api.portal.get_tool('portal_placeful_workflow') + policy = pwftool['ploneintranet_policy'] + default_chain = policy.getDefaultChain(None) + + default_types = [ + 'Collection', + 'Document', + 'Event', + 'File', + 'Folder', + 'Image', + 'Link', + 'News Item', + ] + for portal_type in default_types: + self.assertEqual( + default_chain, + policy.getChainFor(portal_type) + )