Revisioning

RdeBoer - March 20, 2009 - 04:14
Revisions summary page

Revisioning is a module for the configuration of workflows to create, moderate and publish content revisions. You use it in scenario's like this:

  • Authors write content that prior to being made publicly visible must be reviewed (and possibly edited) by moderators. Once the moderators have published the content, authors should be prevented from modifying it while “live”, but they should be able to submit new revisions to their moderators.
  • Both authors and moderators should be allowed to only access content relevant to their department (or region or division etc.).
  • Finally, we shouldn't have to grant these roles “god-like” powers (e.g. "administer nodes" permission) to implement this.

In realising this functionality we initially looked at the Revision Moderation module, but found that the additional functionality that our customers required could not be implemented via a simple patch.

  • In the RM module the permissions to 'edit' vs 'revert/publish' content are lumped together, so that it isn't possible to enforce separation of these responsibilites by role. Revisioning allows you to assign distinct permissions for authors (to only create and edit content) and moderator roles (to review, publish, revert, unpublish and optionally delete content).
  • Starting from version 6.x-2.8 permissions to view revisions may be set per content type, so that authors, editors and moderators may or may not share their work.
  • By taking advantage of the Module Grants module, Revisioning let's you set up workflows and control access to pre-published (as well as published) content, whether it's archived, current or pending review.
  • Also thanks to Module Grants this module integrates better with the Workflow and Taxonomy Access Control or TAC Lite modules. This means that by adding one or both of these modules you can easily implement fine-grained access control based on workflow states ("draft", "in review", "live"), as well as content categories, like departments or regions.
  • Navigation has been altered slightly so that users are invited to first select the desired revision, then the operation they'd like to perform (i.e. view, edit, publish, revert, unpublish or delete).
  • Revisioning is frugal with disk space. By default, a new copy of a revision is created only when you update a current or previously published revision. When you update a pending revision (i.e. a work in progress not yet visible to the public), all edits are saved to the same copy, until it is published. You can switch this feature off though, in which case a new revision is created with every save, thus allowing authors to compare editions prior to moderation. See Content management>>Content types>>edit.
  • Triggers are provided for the publish, unpublish and revert events, allowing configurable actions to be executed, such as the sending of emails to authors when their submissions are approved or declined. With Token actions installed, these emails may be tokenised. See the Revisioning at its simplest tutorial for an example.
  • Revisioning does not require any additional database tables

Note: to use this module also download Module Grants. If you want the side-by-side revision comparison function, then download the Diff module as well.

Documentation

These step-by-step tutorials will teach you everything you'd want to know about revisioning.
o Revisioning at its simplest
o Revisioning with categorised content (e.g. departments, genres).
o Revisioning with state-based content access control

Recent enhancements

Available in 6.x.2.x-dev (21 Nov '09)
o French translation (thanks: chmoindron), German translation (thanks: tadesse)
o Fix #549588: "View revision of own content" should also check node access (thanks: crea)
o Rules integration #575880: Rules Integration: "Revision Author" User Argument (thanks: crea).
o New set of permissions: "view revisions of any|own content-type" #549414: Even more granular "view revisions" permissions. (thanks: crea)
o #536826: Messages are displayed twice (thanks: dboulet & crea)
o Fix #599802: Only show revisioning info on node types with revisioning enabled (thanks: Jaza)
o Fix #598788: node_load() before each trigger action loses the effects of 'changes_node_property' actions (thanks: jweowu)
o Fix #566292: Permissions are not allowed to have special chars
Available in 6.x.2.7 (28 Jul '09) and later:
o Feature: #513078: Flexible revision permissions.
Available in 6.x.2.6 (14 Jul '09) and later:
o #500864: Use menu local tasks for revision links and actions., stage 1 (thanks: crea)
o Bug fix: #505724: User is taken to //node/%nid/revisions after editing node (thanks: dboulet)
o Bug fix: #499126: Query string 'destination' overrides diff redirect path (thanks: dboulet)
o Bug fix: #499820: HTML entities are not displayed correctly in node titles in messages (thanks: dboulet)
o Bug fix: #415012: Do not show revisioning info on teaser view
o Bug fix: #416998: Revisioning takes over all "Edit" in all content
o Bug fix: #484774: Only Show Revisioning Sublinks if Revisions Enabled for That Content Type
o Feature: returned Delete button: #482184: Who stole my delete button !
o Feature: Pending revisions alert: a small "block" a moderator can place anywhere on the screen showing the latest (or oldest) content titles currently awaiting review and publication. Gets updated automatically as the moderator clicks around the screen (even when navigating to pages not related to moderation).
o Feature: #428354: Tab for listing author's content (via latest version of Module Grants)
o Feature: Auto-publication upon save: new option for moderators, saving them another couple of clicks; see also: #470308: New content remains unpublished for users with Publish permissions
o Feature: #481018: Revisioning triggers are only listed for user #1
o Feature: revisioning for user profiles: install Content Profile; see #480618: Revisioning for content types set as profiles?

Enhancements under consideration

o Improve the distinction between drafts and revisions pending moderation, without resorting to the heavy-weight approach of Workflow, see also #472710: What is the difference between a "draft" and a "pending revision"?.
o #519924: Panels integration

Author: Rik de Boer, Internet Business Systems, Melbourne, Australia.

Important: When upgrading to a later version of Revisioning it is recommend you upgrade Module Grants to the latest version as well. Don't forget to visit Site building>>Modules to activate the changes.

Releases

Official releasesDateSizeLinksStatus
6.x-2.72009-Jul-2826.84 KBRecommended for 6.xThis is currently the recommended release for 6.x.
Development snapshotsDateSizeLinksStatus
6.x-2.x-dev2009-Nov-2035.01 KBDevelopment snapshotDevelopment snapshots are automatically regenerated and their contents can frequently change, so they are not recommended for production use.


 
 

Drupal is a registered trademark of Dries Buytaert.