User login

Agaric's Trac workflow

This is in etc/trac/trac.ini. Note that each project can override in its own trac.inin (which for Agaric's system is in /srv/trac/PROJECTNAME/conf/trac.ini).

[ticket-workflow]
; opensource-workflow.ini

; accept action
; When you accept a ticket, you get ownership of it.  (You can't accept a
; ticket on someone else's behalf.)
accept = new,assigned,accepted -> accepted
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY

; assign, reassign, unassign actions
assign = new -> assigned
assign.operations = set_owner
assign.permissions = TICKET_MODIFY

reassign = assigned,accepted -> assigned
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY

; Allow correcting the ownership of a closed ticket.
change_owner = closed -> closed
change_owner.name = change ownership
change_owner.operations = set_owner
change_owner.permissions = TICKET_MODIFY

unassign = assigned,accepted -> new
unassign.operations = del_owner
unassign.permissions = TICKET_MODIFY

; leave actions
leave = * -> *
leave.operations = leave_status
leave.default = 1

dup = new,assigned,accepted,reopened,needinfo,needinfo_new,needsreview -> closed
dup.name = Set
dup.operations = set_resolution,xref
dup.set_resolution = duplicate
dup.xref = Ticket %s has been marked as a duplicate of this ticket.
dup.xref_local = Resolved as duplicate of %s.

; resolve actions - this is supposed to only be used for needsreview, but hey.
resolve = new,assigned,accepted,reopened,needinfo,needinfo_new,needsreview -> closed
resolve.operations = set_resolution
resolve.permissions = TRAC_ADMIN

; reopen actions
reopen = closed -> new
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE

; request info actions
; For tickets with an owner, they go back to assigned
requestinfo = assigned,accepted -> infoneeded
requestinfo.name = Request information
requestinfo.permissions = TICKET_MODIFY

provideinfo = infoneeded -> assigned
provideinfo.name = Provide information
provideinfo.permissions = TICKET_MODIFY
provideinfo.default = 2

; But tickets without an owner go back to new.
requestinfo_new = new -> infoneeded_new
requestinfo_new.name = Request information
requestinfo_new.permissions = TICKET_MODIFY

provideinfo_new = infoneeded_new -> new
provideinfo_new.name = provide info
provideinfo_new.permissions = TICKET_MODIFY
provideinfo_new.default = 2

; needsreview actions
submit = assigned,accepted -> needsreview
submit.name = Submit for review
submit.permissions = TICKET_MODIFY

reject = needsreview -> assigned
reject.name = Reject and send back for more work
reject.permissions = TICKET_MODIFY
reject.default = 2

approve = needsreview -> closed
approve.name = Approve
approve.operations = set_resolution
approve.set_resolution = fixed
approve.permissions = TICKET_MODIFY
approve.default = 2

Changes in the above from the original that we stole

Original source, as noted, is opensource-workflow.ini, but we've been tweaking it to our own needs.

  • Modified trac so tickets in *any* state can be closed by admins, obviating the assigned -> needs review -> closed three-step that often happens when tickets are resolved without anyone even formally accepting it.

Resources

http://trac.edgewall.org/wiki/WorkFlow

See also, in any trac install: wiki/TracIni

Searched words: 
trac workflow for small teams

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • You can use Markdown syntax to format and style the text. Also see Markdown Extra for tables, footnotes, and more.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <blockquote> <small> <h2> <h3> <h4> <h5> <h6> <sub> <sup> <p> <br> <strike> <table> <tr> <td> <thead> <th> <tbody> <tt> <output>
  • Lines and paragraphs break automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.