Edgewall Software

Ideas and suggestions for Trac's Ticket Workflow

This page collects ideas and suggestions for enhancing the ticket workflow.

If you have a small nice idea but don't feel like starting a discussion on the MailingList or creating a new ticket, this is the place!

Reminder about open issues

#925
[PATCH] Allow wiki syntax in labels for custom fields
#1395
Text box for duplicate when a bug is a duplicate
#3734
Provide Possibility to 'freeze' a Milestone
#4298
tickets linked to multiple versions
#4549
[PATCH] Ticket std/custom fields improvements - sql based values, order by, labels, value evals, ...
#5425
Make the state transition dependant on group membership in addition to the boiled down group permissions in workflows
#5441
Timeline shows incomplete information about status changes for customized workflow
#5755
Multiple Milestone Dates
#5856
Enterprise workflow enhancements for request info
#5866
[patch] Workflow tweak: handle "not-state" transition specifications
#6135
Enhancement for trac-post-commit-hook.py for Enterprise Workflow
#6548
different types of ticket need different workflows
#6744
Wiki page and milestone deletes aren't shown in time line
#8702
Different workflows when viewing own tickets/others tickets
#9472
Workflow actions not translated
#9508
Provide per-type resolution lists
#10698
Workflow action with non-ascii letters fails to change owner properly
#10933
Custom Query: Column with last status change
#11093
subversion hook scripts do not respect the trac workflow
#11452
Implement a set_field workflow action
#11714
Log unknown attributes in ticket workflow
#11856
Default values of ticket workflow fields should be configured in the [ticket-workflow] section
#11865
Workflow macro could read files from the repository
#11939
Render workflow based on user or group permissions
#12077
Ticket workflow should support negated permissions

CSS

Layout

User interface guidelines

Workflow Actions

If you have a response to the comments below, create an enhancement ticket, and replace the description below with a link to the ticket.

  • the "operation" could be on the nodes, possible operations are:
    • preops: automatic, before entering the state/activity
    • postops: automatic, when leaving the state/activity
    • actions: can be chosen by the owner in the list at the bottom, and/or drop-down/pop-up together with the default actions of leaving the node on one of the arrows.

This appears to add complexity without adding functionality; please provide a detailed example where these additions allow something currently impossible to implement.

  • operations could be anything: sum up the time used for the activity, or just write some statistical fields like

A workflow plugin can add an arbitrary workflow operation, so this is already possible.

  • set_actor should be an operation allowing to set the owner, e.g. as a "preop":
    • either to a role, a person
    • entered fix at define time, or at run time, e.g. out of a field, or select.

This is either duplicating the existing set_owner operation, or needs to be clarified.

  • Actions should be selectable based on the ticket type (different Workflows for different tickets)

Look into the AdvancedTicketWorkflowPlugin's triage operation.

  • I added a 'testing' state. A tester can close the ticket or reject it. I'd like the transition from testing to rejected to set the owner to the person that put the ticket in 'testing'. The AdvancedTicketWorkflowPlugin is close with set_owner_to_field, but we need something like set_field_to_owner.

See for example ITicketChangeListener. This will allow you to write a plugin that will suit your needs.

  • I'd like to track the time a ticket is in each state, adding up 'disjoints' intervals in the same state.

You could do a query on the ticket table and the ticket changes table and find out transitions between individual states and the time the ticket had been in each of the available states.

Workflow attributes

  • restrict_owner field for set_owner and may_set_owner operations that overrides, or replaces, the global [ticket] restrict_owner setting.

See also:

Last modified 19 months ago Last modified on Jan 15, 2015, 10:45:33 AM