Workflow within Open Atrium 2
A key requirement in most organizations is a content approval workflow. The typical Drupal solution uses the Workbench Moderation module. However, the Workbench Moderation module only allows you to create a single site-wide workflow. What if you need different workflows in different Open Atrium spaces, or between different content types? The solution is the new Open Atrium Workbench module!
The Open Atrium Workbench module, along with several dependent modules, was a collaboration between Phase2 (srjosh and myself) and the Community (dsnopek). It allows you to define multiple workflow “profiles” and apply them to content types within Open Atrium Spaces and Sections. It also allows you to specify the Groups and/or Teams who are allowed to moderate content through the workflow.
Workbench Moderation Profiles
A workflow “profile” is a collection of States and Transitions. A “State” represents where in the workflow a specific piece of content is, such as “Draft”, “Needs Review”, “Published”, etc. A “Transition” is the act of moving between two states. Typically a Transition can only be made by a specific set of users with proper permissions. For example, only members of a specific Working Group might be allowed to approve content, or only members of the Marketing team allowed to Publish content.
The Workbench Moderation module allows you to create these States and Transitions, but applies them globally across the entire site. The new Workbench Moderation Profile module (currently a sandbox) creates a new entity-type for storing workflow profiles. The States and Transitions are still created globally by Workbench Moderation, but the actual collection of these being used for a specific workflow are controlled by the profile entity.
Workbench Moderation Profiles is very generic and doesn’t care exactly how these profiles are applied. Submodules to support Organic Groups and Content Types are provided. Hooks are available for further control. The Open Atrium Workbench module uses these hooks to provide Space-specific and Section-specific workflow profiles.
Turning it all on
To add workflow to Open Atrium, download and install the Open Atrium Workbench module and all it’s dependencies. There are several patches needed to Workbench Moderation documented in the oa_workbench.make file. Eventually these will get committed to Workbench Moderation and much of the Profile sandbox will be incorporated directly.
Once all of the modules are enabled, the various Drupal permissions and Organic Groups (OG) permissions need to be set. Permissions in Workbench Moderation are a bit backwards from the norm: submodules *revoke* access rather than *grant* access. Typically this means you will set the Drupal Workbench Moderation permissions (including View Unpublished content) to be allowed for all authenticated users, then use OG permissions to restrict to Members and/or Space Admins, then optionally use OA permissions to restrict to Groups/Teams.
After enabling permissions, you next need to enable Moderation of Revisions on the specific content types that you want to use workflow. When using Open Atrium, enabling Moderation on a content type will not turn on the workflow features until the Space itself enables a Profile. Typically this means you will enable Moderation on many content types, such as Document Pages, Events, etc. In most cases, moderation will *not* be used on Discussion Posts since those are usually ad-hoc discussions that do not require approvals.
Finally, the last step it to create your custom Workbench Profile containing the transitions you wish to include, then enable this workflow Profile for your Space or Section. For Spaces, the workflow profile is set within the Config/Workbench Moderation page. For Sections, the workflow profile is set by editing the Section node and setting the profile field.
To limit transitions to Groups or Teams, enable the oa_workbench_access module (included with oa_workbench). To allow transitions to be scheduled automatically in the future, download and enable the Workbench Moderation Scheduled Transitions module (also a sandbox).
How it works
Once Open Atrium Workbench is configured, creating new content within a Section will display the normal Workbench Moderation messages panel. This panel provides information about what State the document is in and allows options for moving to a different state if you are approved to make that transition.
For example, a Member creates a new content Draft. Once they are happy with the draft, they move it to the “Needs Review” state. Somebody authorized to review the document visits their “My Workbench” page from their User Badge dropdown menu and goes to the “Needs Review” tab to see all of the content awaiting their approval. After reviewing the document, they can either Reject the document, sending it back to the Draft state, or they can approve the document, sending it to the Published state. Only the users authorized to publish the document will see the Published option in the workbench panel.
Once content is published, a new draft can still be made. Workbench Moderation supports having one revision of content published while a different revision is in the draft state. The new draft will only replace the currently published revision once it is approved and published via the workflow.
See you at DrupalCon Austin!
For more detailed information on using Open Atrium Workbench, watch my hands-on demo webinar. If you are coming to DrupalCon Austin, stop by the Phase2 booth for a demo, or schedule a demo to discussion your specific organizational needs. Or just come to our booth and say “Hi” and tell me about the cool and interesting ways you are using Open Atrium 2 in your organization.
While I’ve been using the default publishing approval workflow as my example, each organization has different workflow needs. The workflow profile used for publishing documents is quite different from the workflow used to manage tasks or issues. The workflow used in a private section (if any) is likely different than the workflow used in a public section. Open Atrium supports all of these different cases in a systematic and easy-to-use way, consistent with users familiar with the Workbench Moderation module. This functionality makes Open Atrium a key solution in the Enterprise Collaboration space on par with many non-Open-Source systems.