This module allows to setup Workflow relationships. At the moment only "workflow -> node" relationship is implemented, but the module could be expanded to support any kind of workflow relationship.
Currently Workflow Relationships consists of 2 parts:
- Administration UI, that allows to setup relationship table
- CTools/Panels integration: relationship you set up is then available as CTools relationship, so you can show "related" node (or part of it) in a Panel pane that you put in Panel containing source node context
Use case example
There is general need to display information based on node workflow, for example, instructions. These instructions sometimes need to contain images and various additional information, so using drupal_set_message() for instructions is not solution in these cases. Since Drupal has nodes, using them for instructions is quite logical: any type of information can be included, and management tools already exist. Because we want to use nodes, we would also want to connect workflow information to these nodes (in terms of this module, to make workflow-node relationship), so different instructions could be displayed for different workflow states.
Then comes this module, allowing to setup such relationships, and to use them.
State of this module
This module is more like draft, rather than finished product. It has many things that were made "quick and dirty".
Problems and possible roadmap:
- No caching. This can be easily fixed with simple caching of resulting relationship, with cache clearing in hook_workflow() and after admin form submit.
- Currently module returns relationships only when current user == author of source node. This was done because original goal was to provide instruction node context to authors. This can be fixed with some access control.
- Node selection UI is inconvenient: you have to know target node id to setup relationship. This can be fixed with implementing some node finder widget such as the one from Finder project.
- No separate table: relationships are stored in single variable. This is handy when you have small number of relationships, and you don't have to add more columns. But if the module will turn into something bigger, this should be fixed. Note: it *is* possible to have small number of relationships, because the module supports wildcard matching. So this is not critical issue.