Changes between Version 33 and Version 34 of QueuesPlugin
- Timestamp:
- Nov 19, 2015, 8:57:11 AM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
QueuesPlugin
v33 v34 15 15 16 16 If you have any issues, create a 17 [ http://trac-hacks.org/newticket?component=QueuesPlugin&owner=robguttman new ticket].17 [/newticket?component=QueuesPlugin new ticket]. 18 18 19 19 [[TicketQuery(component=QueuesPlugin&group=type,format=progress)]] … … 21 21 == Download 22 22 23 Download the zipped source from [ download:queuesplugin here].23 Download the zipped source from [export:queuesplugin here]. 24 24 25 25 == Source 26 26 27 You can check out QueuesPlugin from [ http://trac-hacks.org/svn/queuesplugin here] using Subversion, or [source:queuesplugin browse the source] with Trac.27 You can check out QueuesPlugin from [/svn/queuesplugin here] using Subversion, or [source:queuesplugin browse the source] with Trac. 28 28 29 29 == Configuration … … 36 36 }}} 37 37 38 See [ http://trac.edgewall.org/wiki/TracPluginsTracPlugins] for more installation details and options. You will likely need to restart Trac's web server after installation.38 See [t:TracPlugins] for more installation details and options. You will likely need to restart Trac's web server after installation. 39 39 40 40 2. Enable the plugin by adding the following to your `trac.ini` file: … … 56 56 * Can use spaces, which will get removed. 57 57 58 5. Tell the queuesplugin which reports to convert to queues, example `trac.ini` file:58 5. Tell the plugin which reports to convert to queues, example `trac.ini` file: 59 59 {{{#!ini 60 60 [queues] … … 77 77 FROM ticket t 78 78 LEFT JOIN enum s ON s.name = t.severity AND s.type = 'severity' 79 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id andp.name = 'position'79 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id AND p.name = 'position' 80 80 WHERE t.status <> 'closed' 81 81 ORDER BY CAST((CASE p.value … … 93 93 }}} 94 94 95 You may need to restart your Trac web server afterwards. Here 's a screenshot of the result with a few sample tickets:95 You may need to restart your Trac web server afterwards. Here is a screenshot of the result with a few sample tickets: 96 96 97 97 [[Image(example1.png)]] … … 108 108 FROM ticket t 109 109 LEFT JOIN enum s ON s.name = t.severity AND s.type = 'severity' 110 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id andp.name = 'position'111 WHERE t.status <> 'closed' andt.milestone = '$MILESTONE'110 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id AND p.name = 'position' 111 WHERE t.status <> 'closed' AND t.milestone = '$MILESTONE' 112 112 ORDER BY CAST((CASE p.value 113 113 WHEN '' THEN '0' … … 128 128 [[Image(example2.png)]] 129 129 130 In this example, I'm using the optional DynamicVariablesPluginwhich converts the {{{MILESTONE}}} dynamic variable (aka argument) from a freeform textbox to a convenient dropdown menu at the right.130 In this example, the optional DynamicVariablesPlugin is used, which converts the {{{MILESTONE}}} dynamic variable (aka argument) from a freeform textbox to a convenient dropdown menu at the right. 131 131 132 132 === Team work queue per milestone with a Triage group … … 140 140 ELSE '$MILESTONE' 141 141 END) AS __group__, 142 p.value asposition, t.id AS ticket, summary,142 p.value AS position, t.id AS ticket, summary, 143 143 t.type AS type, t.severity, t.owner 144 144 FROM ticket t 145 145 LEFT JOIN enum s ON s.name = t.severity AND s.type = 'severity' 146 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id andp.name = 'position'147 WHERE t.status <> 'closed' andt.milestone = '$MILESTONE'146 LEFT OUTER JOIN ticket_custom p ON p.ticket = t.id AND p.name = 'position' 147 WHERE t.status <> 'closed' AND t.milestone = '$MILESTONE' 148 148 ORDER BY (CASE p.value 149 149 WHEN '' THEN 'Triage' … … 175 175 * {{{ignore}}} 176 176 177 There must be only one {{{reorder}}} group per report but you can have any number of {{{clear}}} and {{{ignore}}} groups. The {{{ignore}}} operation will simply list the tickets that match your grouping but tickets can't be moved out of or into it. This is useful, for example, if you want to show work in the queue that has been implemented but still in, say, a {{{verifying}}} state and not yet closed. The SQL syntax is left as an exercise to the reader.178 179 TIP: You can click on any {{{clear}}} or {{{ignore}}} group heading to toggle between hiding and showing its tickets.177 There must be only one {{{reorder}}} group per report but you can have any number of {{{clear}}} and {{{ignore}}} groups. The {{{ignore}}} operation will simply list the tickets that match your grouping, but tickets can't be moved out of or into it. This is useful, for example, if you want to show work in the queue that has been implemented but still in, say, a {{{verifying}}} state and not yet closed. The SQL syntax is left as an exercise to the reader. 178 179 '''Tip''': You can click on any {{{clear}}} or {{{ignore}}} group heading to toggle between hiding and showing its tickets. 180 180 181 181 === Team work queue per custom field … … 193 193 === Personal work queue 194 194 195 You can create a queue for just about any SQL report as long as the {{{position}}} custom field is used for one and only one queue. Another use case is if you want to use queues simply to let users manage their own work load. You can simply create a report that pivots on the special, built-in {{{$USER}}} dynamic variable.Viola! Personal work queues for everyone using a single report.195 You can create a queue for any SQL report as long as the {{{position}}} custom field is used for one and only one queue. Another use case is if you want to use queues simply to let users manage their own work load. You can simply create a report that pivots on the special, built-in {{{$USER}}} dynamic variable. Viola! Personal work queues for everyone using a single report. 196 196 197 197 === Team work queue ''and'' personal work queue … … 248 248 Depending on how you use work queues, several complementary plugins may enhance the user experience: 249 249 250 * DynamicVariablesPlugin - as described above, this converts dynamic variable textboxes into dropdown menus for those fields which are select fields. 251 * DynamicFieldsPlugin - allows you to clear the {{{position}}} field when the milestone/queue field changes and hide the {{{myposition}}} field from general view. 252 * HideChangesPlugin - can hide ticket changes that do not have comments thus reducing the noise from queue reordering changes. 253 * QuietPlugin - dynamically disables email sending when using the AnnouncerPlugin which helps reduce low-value email noise when using the {{{ticket}}} audit option, see below.250 * DynamicVariablesPlugin - as described above, this converts dynamic variable textboxes into dropdown menus for those fields which are select fields. This can make navigating amongst queues much easier. 251 * DynamicFieldsPlugin - allows you to clear the {{{position}}} field when the milestone/queue field changes and hide the {{{myposition}}} field from general view. These are just small examples of how the plugin can enhance the user experience of this queues plugin. 252 * HideChangesPlugin - can hide ticket changes that do not have comments thus reducing the noise from queue reordering changes. See the next audit section for other options. 253 * QuietPlugin - dynamically disables email sending when using the AnnouncerPlugin, which helps reduce low-value email noise when using the {{{ticket}}} audit option, see below. 254 254 255 255 === Auditing ticket reorderings