Another milestone on the road to Zen with Ingeniweb components
Latest version : 1.3.2


> A CMF/Plone product for locally changing the workflow of content types <

About CMFPlacefulWorkflow

A CMF/Plone product for locally changing the workflow of content types

CMFPlacefulWorkflow has been designed by the INGENIWEB team.

CMFPlacefulWorkflow 1.3.2 is licensed under the GNU GPL license.

Do you like this product? You can support its authors by clicking the button below:
Support This Project


Screenshots of the CMFPlacefulWorkflow administration interface will be available soon.


  • Use Site Setup -> Add-on Products panel to install
  • Now you can define and apply local workflow policies through the Plone Interface.


Placeful Workflow is a Plone product that allows you to define workflow policies that define content type to workflow mappings that can be applied in any sub-folder of your Plone site:

  1. When you access the root of your site, you will see a new action in the workflow state drop-down menu called "policy". Click on the "policy" link.
  2. The next page will let you add a policy to your folder by clicking on the "Add Workflow policy" link. Click on "Add Workflow policy".
  3. Now you have a workflow policy in your site, and you can set the workflow policies for this folder and below.

We didn't add any workflow policies, so you don't have a choice of different workflow policies yet, so the default workflow policy will be taken both for the folder and below.

Now, let's define a new workflow policy:

  1. Access "Site Setup" and click on "Placeful Workflow" in the "Add-on Product Configuration" section.
  2. Enter the name "my_policy" in the "New policy" field, and click on "add".
  3. Now you have a new policy. Enter the title "Example policy" and the description "This is an example policy".
  4. Change the workflow for the content type "Folder" from "folder_workflow" to plone_workflow", and click on "Save". Now all your content types should use the "plone_workflow".

Let's test the new workflow policy for "Folders" at the root of our site:

  1. At the root of the site, select the "Policy" link in the workflow state drop-down menu.
  2. Select "Example policy" for "In this Folder" and "Below this Folder" and click "Save".
  3. Then, let's add a Folder to see whether the new workflow policy is active. Go to the root of your site and select "Folder" from the "Add new item" drop-down list. Enter the id "myfolder", the title "My folder" and the description "This is my folder", and click on "Save".
  4. Now, when you access the "State" drop-down list, you will see that you have the possibility to "submit" the folder. The submit transition only exists in the "plone_workflow", and is absent from the "folder_workflow", which demonstrates that the workflow policy we have chosen is used for the "Folder" content type.

Let's go one step further and add a new folder inside of "My folder". After having added the new folder, you should also find the "Submit" transition available.

Now it would be interesting to change the workflow policy setting in the Plone site. Let's first change the workflow policy for "Below this Folder" to "Default Policy". You will find that the second folder does not more have the "submit" transition.

You can add an additional workflow policy in the first folder, which assigns the "My policy" for "In this Folder", so the second folder will once again have the "submit" transition.

Additional tools

The Placeful Workflow tool (portal_placeful_workflow) is installed by the installer. It provides a few configuration options so that you use to create you workflow policies through the ZMI.


Released versions

Released versions of CMFPlacefulWorkflow are available here. The current version is 1.3.2.

CVS version

The repository contains the up-to-date versions of our source code. In order to get the HEAD branch of CMFPlacefulWorkflow, use :

svn co

You can also browse the CVS with your browser.



Please take time the read the Readme


The FAQ for CMFPlacefulWorkflow is waiting for more questions.



CMFPlacefulWorkflow changes

[ 2008-06-30 1.3.2 ]

  • Fixed incorrect variable name in exception message that crash migration (davisagli)
  • Purged old Zope2 Interface interfaces for compatibility with Zope 2.12 and Plone 4. (elro)

[ 2008-04-21 1.3.1 ]

  • Remove the dtml directory (encolpe)
  • Fix control panel and profile titles (encolpe)

[ 2008-04-18 1.3.0 ]

  • Fix some i18n ids (encolpe)
  • Removed patches for Plone 2.5 compatibility. (hannosch)

[ 2008-03-26 1.3.0-rc5 ]

  • Move DTML management screen into ZPT (encolpe)
  • Remove invalid leading whitespace in links (wichert)

[ 2008-03-26 1.3.0-rc4 ]

  • Fix import policies bug when CMFPlacefulWorkflow is not installed (witsch)

[ 2008-03-26 1.3.0-rc3 ]

  • Add metadata.xml to the GS profile. This fixes a deprecation warning.
  • Move import and export step registration to zcml. (wichert)

[ 2008-03-25 1.3.0-rc2 ]

  • Adding 4 base policies using plone base workflows (encolpe)

  • Merging plip217 (alecm, encolpe)

  • Remove trunk branch (encolpe):

    System Message: WARNING/2 (<string>, line 45)

    Literal block expected; none found.

    dev are in branches/plone3.1

    maintenance in branches/plone3.0

[ 2008-03-20 1.3.0-rc1 ]

  • Fix #7654 by adding reinstall parameter in intall method
  • Implementation of PLIP 217 (alecm)

[ 2008-02-23 1.3.0 ]

  • End GenericSetup export importhandler: - acquire attribute is removed on types (undefined types use aquired chain) - add a default_chain attribute on types - empty chain remove all workflows Thanks to jensens to point me this (encolpe)
  • fix the GenericSetup exportimport handlers, they just did half the work needed. (jensens)
  • full generic setup support, no Extensions/ any longer. Contributed by BlueDynamics Alliance. (jensens)

[ 2007-11-08 1.3.0-beta1 ]

  • GenericSetup exportimport handlers for tool and policies. Contributed by Jazkarta. (rossp)

[ 2008-MM-DD 1.2.2 ]

  • Fix #7654 by adding reinstall parameter in intall method (encolpe)

[ 2007-11-08 1.2.1 ]

  • Fix ordering bug when we tests plone workflows Contributed by Jazkarta. (rossp)

[ 2007-10-01 1.2.0 ]

[ 2007-07-02 1.2.0-rc1 ]

  • Add verbose debugging when adding the debug.txt file
  • Fix migration bug from plone 2.1 version (encolpe)
  • Fix policy config bug saving in ZMI
  • Move CMFPW control panel back to add-on panels (hannosch)

[ 2007-03-24 - 1.2.0-beta1 ]

  • Switch from getToolByName to getUtility for Plone 3.0 integration (encolpe)

[ 2007-02-27 - 1.0.3 ]

  • Fix tests initialization breakage and tests README (encolpe)
  • Move CMFPW control panel in plone panels (wichert)

[ 2007-01-01 - 1.0.2 ]

  • Fixed templates for Plone 2.1.4 (jmgrimaldi)

[ 2006-09-08 - 1.0.1 ]

  • Fixed breakage on policy creation in ZMI

[ 2006-06-16 - 1.0.0-final ]

  • Some more better explanation texts. (optilude, hannosch, jrlewis)
  • Fixed None chain in getChainFor (encolpe)
  • Some small i18n corrections. (hannosch)
  • Fixed missing i18n chains (encolpe)

[ 2006-06-02 - 1.0rc2]

  • New post modern icon (encolpe)
  • Fixed policy mapping error on backward compatibility (encolpe)
  • Fixed template that doesn't show '(Default)' (encolpe)

[ 2006-05-24 - 1.0rc1]

  • Support of aquiring policy from another (encolpe)

[ 2006-05-17 - 1.0beta3]

  • Fixed copy/paste bug (encolpe)
  • Fixed BTreeFolder bug => obj is not None but False (encolpe)
  • Removed unused i18n folder. (hannosch)
  • Fixed a simple i18n markup problem revealed by ZChecker. (hannosch)
  • Removed a noise log message at Zope startup. (hannosch)

[ 2006-03-21 - 1.0alpha2 ]

  • Converted python scripts to use new MessageID / status messages. (hannosch)
  • Synced prefs templates with current Plone 2.5 ones. (hannosch)
  • Cleaned up all templates and added missing i18n statements. (hannosch)
  • Determine workflow policy only via containment not context (AM)
  • Removed bare except (AM)
  • Let user choose an empty default workflow in a policy (encolpe)
  • Cleaning installation schema (encolpe)
  • Uninstallation of the configlet (encolpe)
  • Fix reintallation looses defined policies (encolpe)
  • Code cleaning (encolpe)
  • fix unit test 7 and 10 (encolpe)
  • Better icon for configlet (encolpe)
  • Unit tests cleaning (encolpe)
  • Removing Custom Policy (encolpe)
  • Test for Bugfix: Default workflow policy chain is now taken into account (MR)
  • Test for Bugfix: Policy Container does not apply contained workflow policies (MR)
  • Test the case where a container itself is subject to a workflow policy
  • Bugfix: When getting the chain for a type the config must handle the case where there is no appropriate policy.
  • Bugfix: Policy Container does not apply contained workflow policies (MR)
  • Bugfix: Default workflow policy chain is now taken into account (MR)
  • remove unused toolbox import from Testcase (thanks to huron)
  • write missing dependancies in INSTALL.TXT

[v0.4 - 20050829]

  • add global_contentmenu_2_1 for Plone 2.1 compatibility.
  • Support for workflow chains
  • Minor fixes on page templates
  • Use '(Default)' chain from Michael Davis' patch
  • Add a Customization Policy
  • Make testcase zopectl test compatible
  • Factory tool fix for Plone 2.0.x

[v0.3 - 20050413]

  • Cleaned up the interface.
  • Added mini-howto to Readme.txt
  • Simplified Workflow Policy interface
  • Fixed a bug when adding a workflow policy through the Placeful Workflow interface in Plone Setup thanks to a patch by Edward Muller.
  • Simplified access to the configuration from the policy action in the workflow state menu in the case of a non-folderish object.
  • Installs fine in Plone 2.1 now.
  • Installation of a configlet
  • Installing a patch of getChainFor in Plone's
  • It is no more necessary to replace workflow_tool
  • Removed content_status_history.cpt which had been added accidentally

[v0.2 - 20041102]

  • Checking isPrincipiaFolderish to see if we can add a configuration locally

[v0.1 - 20041102]

  • Initial version

CMFPlacefulWorkflow ChangeLog is also available for detailed informations.