Workflow based on ticket type
This plugin controls what actions can be performed on a ticket. The actions are specified in the
[ticket-workflow] section of the TracIni file.
The plugin works with Trac 0.11, 0.12 and 1.0.
See also TypedTicketWorkflowPlugin.
For changing the workflows an admin page is available in the Ticket System section.
What's the difference to TypedTicketWorkflowPlugin?
With MultipleWorkflowPlugin you may have an exclusive workflow section for each ticket type like this:
[ticket-workflow] # Default workflow approve = new, reopened -> approved approve.operations = del_resolution ... [ticket-workflow-Foo] # Workflow for ticket type 'Foo' do_foo = new -> foo ... [ticket-workflow-Bar] # Workflow for ticket type 'Bar' do_bar = new -> bar ...
With TypedTicketWorkflowPlugin you specify restrictions for ticket types in the default workflow by adding them to the transitions:
[ticket-workflow] approve = new, reopened -> approved approve.operations = del_resolution # approve is only valid for ticket types 'defect' and 'feature' approve.tickettype = defect, feature ...
The former is easier to manage if you have several ticket types with vastly different workflows.
See also #5287.
If you have any issues, create a new ticket.
Download the zipped source from here.
General instructions on installing Trac plugins can be found on the TracPlugins page.
Enable the plugin by adding the following to your
[components] multipleworkflow.* = enabled
Add the controller to the workflow controller list:
[ticket] workflow = MultipleWorkflowPlugin
To use it you should have the
[ticket-workflow] section defined in your
trac.ini file. When a custom section for a ticket type has not been defined, that one will be used.
To define a different workflow for a ticket with type
Requirement create a section in
[ticket-workflow-Requirement] and add your workflow items:
[ticket-workflow-Requirement] leave = * -> * leave.default = 1 leave.operations = leave_status approve = new, reopened -> approved approve.operations = del_resolution approve.permissions = TICKET_MODIFY reopen_verified = closed -> reopened reopen_verified.name = Reopen reopen_verified.operations = set_resolution reopen_verified.set_resolution = from verified reopen_verified.permissions = TICKET_MODIFY reopen_approved = approved -> reopened reopen_approved.name = Reopen reopen_approved.operations = set_resolution reopen_approved.set_resolution = from approved reopen_approved.permissions = TICKET_CREATE remove = new, reopened, approved, closed -> removed remove.name = Remove this Requirement permanently remove.operations = set_resolution remove.set_resolution = removed remove.permissions = TICKET_MODIFY verify = approved -> closed verify.name = Verify the Requirement and mark verify.operations = set_resolution verify.set_resolution = verified verify.permissions = TICKET_MODIFY
This results in the following workflow:
Custom Workflow Statuses on Query Page
Starting with  all defined statuses from typed workflows are available on the ticket query page for filtering.
- 16517 by rjollos on 2017-04-16 01:46:52
- 16167 by rjollos on 2016-12-28 23:28:05
MultipleWorkflowPlugin 1.3.2: Remove unused args from initializer
- 15137 by Cinc-th on 2015-12-28 13:11:25
- Let parent calculate default ticket actions only once instead of calculating them again and again when using.
- Calculate actions for ticket types only once
- Bump version to 1.3.1