wiki:MultipleWorkflowPlugin

Version 18 (modified by Cinc-th, 9 years ago) (diff)

Enhanced the description.

Workflow based on ticket type

Description

The MultipleWorkflowPlugin replaces the ConfigurableTicketPlugin used by Trac to control what actions a ticket can do reading [ticket-workflow] section.

With MultipleWorkflowPlugin Trac can read the workflow based on the type of ticket. If a section for that ticket type doesn't exist than it uses the default workflow, see Example.

The plugin works with Trac 0.11 and 0.12 and maybe with Trac 1.x (not tested).

See also TypedTicketWorkflowPlugin.

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 like:

[ticket-workflow]
approve = new, reopened -> approved
approve.operations = del_resolution
# approve is only valid for ticket types 'defect' and 'feature'
approve.ticket_type = defect, feature
 ...

The former is easier to manage if you have several ticket types with vastly different workflows.

Bugs/Feature Requests

Existing bugs and feature requests for MultipleWorkflowPlugin are here.

If you have any issues, create a new ticket.

defect

15 / 17

enhancement

5 / 5

task

1 / 1

Download

Download the zipped source from [download:multipleworkflowplugin here].

Source

You can check out MultipleWorkflowPlugin from here using Subversion, or browse the source with Trac.

Installation

Enable the plugin with:

[components]
multipleworkflow.* = enabled

Add the controller to the workflow controller list:

workflow = MultipleWorkflowPlugin

Example

For using it you should have the [ticket-workflow] section in your trac.ini file because when a custom section for a ticket type doesn't exist that one is used.

To define a different workflow for a ticket with type Requirement create a section in trac.ini called [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=Verifiy the Requirement and mark
verify.operations = set_resolution
verify.set_resolution=verified
verify.permissions = TICKET_MODIFY

This results in the following workflow:

Add Custom Statuses to Query Page

Your custom statuses are normally not available on the Trac query page for filtering tickets.

Trac core only looks at the default workflow when gathering the statuses (for obvious reasons since it doesn't know about your private workflow).

To have your custom status appear which is defined in [ticket-workflow-my_type] add it to the default section [ticket-workflow] like this:

[ticket-workflow]
[...]
# The following are from other workflows. By including them here they will show up
# as a selectable item on the ticket query page.
approve = approved -> approved
remove = removed -> removed
[...]

Because there is no transition to the statuses approved and removed in the default workflow these items will never show up as a selectable item on the ticket page of standard tickets, yet you see them on the query page.

Recent Changes

18098 by Cinc-th on 2021-03-26 06:43:31
MultipleWorkflowPlugin: Python 3 fix. Added classifiers to setup.py.
18094 by Cinc-th on 2021-03-25 11:27:31
MultipleWorkflowPlugin: fixes for Python 3 support.
17959 by rjollos on 2021-01-20 01:24:20
MultipleWorkflowPlugin 1.5.2: Revert unintended change in r17958

Refs #13943.

(more)

Author/Contributors

Author: ermal
Maintainer: Cinc-th
Contributors:

Attachments (1)

Download all attachments as: .zip