| 13 | |
| 14 | The only required configuration is in defining SQL reports. For example, a report for a specific {{{milestone}}} that also queries for a custom {{{queue}}} select field could be defined like this: |
| 15 | {{{#!sql |
| 16 | SELECT p.value AS __color__, t.id AS ticket, summary, component, severity, reporter |
| 17 | FROM ticket t |
| 18 | LEFT OUTER JOIN milestone m ON t.milestone = m.name |
| 19 | LEFT JOIN enum p ON p.name = t.severity AND p.type = 'severity' |
| 20 | LEFT OUTER JOIN ticket_custom q ON q.ticket = t.id AND q.name = 'queue' |
| 21 | WHERE q.value = '$QUEUE' |
| 22 | AND milestone = '$MILESTONE' |
| 23 | ORDER BY m.due ASC, p.value |
| 24 | }}} |
| 25 | |
| 26 | The result is as follows: |
| 27 | |
| 28 | === Before |
| 29 | |
| 30 | [[Image(before.png)]] |
| 31 | |
| 32 | === After |
| 33 | |
| 34 | [[Image(after.png)]] |
| 35 | |
| 36 | Completed milestones are omitted from the dropdown menu. |
61 | | == Example |
62 | | |
63 | | The only required configuration is in defining SQL reports. For example, a report for a specific {{{milestone}}} that also queries for a custom {{{queue}}} select field could be defined like this: |
64 | | {{{#!sql |
65 | | SELECT p.value AS __color__, t.id AS ticket, summary, component, severity, reporter |
66 | | FROM ticket t |
67 | | LEFT OUTER JOIN milestone m ON t.milestone = m.name |
68 | | LEFT JOIN enum p ON p.name = t.severity AND p.type = 'severity' |
69 | | LEFT OUTER JOIN ticket_custom q ON q.ticket = t.id AND q.name = 'queue' |
70 | | WHERE q.value = '$QUEUE' |
71 | | AND milestone = '$MILESTONE' |
72 | | ORDER BY m.due ASC, p.value |
73 | | }}} |
74 | | |
75 | | The result is as follows: |
76 | | |
77 | | === Before |
78 | | |
79 | | [[Image(before.png)]] |
80 | | |
81 | | === After |
82 | | |
83 | | [[Image(after.png)]] |
84 | | |
85 | | Completed milestones are omitted from the dropdown menu. |
86 | | |