76 | | === Notes === |
77 | | Do not insert space characters between '{{{|}}}'-separated option values for ''radio'' and ''select'' fields. |
78 | | * ok: {{{FIELD_NAME.options = un|deux|trois}}} |
79 | | * invalid: {{{FIELD_NAME.options = un | deux | trois}}} |
| 72 | ''Note: To make an entering an option for a `select` type field optional, specify a leading `|` in the `fieldname.options` option.'' |
| 73 | |
| 74 | === Reports Involving Custom Fields === |
| 75 | |
| 76 | The SQL required for TracReports to include custom ticket fields is relatively hard to get right. You need a `JOIN` with the `ticket_custom` field for every custom field that should be involved. |
| 77 | |
| 78 | The following example includes a custom ticket field named `progress` in the report: |
| 79 | {{{ |
| 80 | #!sql |
| 81 | SELECT p.value AS __color__, |
| 82 | id AS ticket, summary, component, version, milestone, severity, |
| 83 | (CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS owner, |
| 84 | time AS created, |
| 85 | changetime AS _changetime, description AS _description, |
| 86 | reporter AS _reporter, |
| 87 | (CASE WHEN c.value = '0' THEN 'None' ELSE c.value END) AS progress |
| 88 | FROM ticket t |
| 89 | LEFT OUTER JOIN ticket_custom c ON (t.id = c.ticket AND c.name = 'progress') |
| 90 | JOIN enum p ON p.name = t.priority AND p.type='priority' |
| 91 | WHERE status IN ('new', 'assigned', 'reopened') |
| 92 | ORDER BY p.value, milestone, severity, time |
| 93 | }}} |
| 94 | |
| 95 | Note in particular the `LEFT OUTER JOIN` statement here. |