Changes between Version 1 and Version 2 of TracTicketsCustomFields


Ignore:
Timestamp:
Jan 4, 2006, 5:52:42 PM (19 years ago)
Author:
trac
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • TracTicketsCustomFields

    v1 v2  
    11= Custom Ticket Fields =
    2 Trac support adding custom, user-defined, fields to the ticket module. Using custom fields, you can add typed, site-specific, properties to tickets.
     2Trac supports adding custom, user-defined fields to the ticket module. Using custom fields, you can add typed, site-specific properties to tickets.
    33
    4 '''Note: In Trac 0.8, this feature is still experimental.'''
    5 
    6 == Configuriation ==
    7 Configuring custom ticket fields is done in the TracIni config file.
    8 
    9 All field definitions should be under a section named [ticket-custom] in the ini-file.
     4== Configuration ==
     5Configuring custom ticket fields is done in the [wiki:TracIni trac.ini] file. All field definitions should be under a section named `[ticket-custom]`.
    106
    117The syntax of each field definition is:
     
    1511 ...
    1612}}}
    17 Looking at the example below should help explain the syntax.
     13The example below should help to explain the syntax.
    1814
    1915=== Available Field Types and Options ===
     
    3834   * label: Descriptive label.
    3935   * value: Default text.
    40    * width: Width in columns.
    41    * height: Height in lines.
     36   * cols: Width in columns.
     37   * rows: Height in lines.
    4238   * order: Sort order placement.
    4339
     
    4541{{{
    4642[ticket-custom]
     43
    4744test_one = text
    4845test_one.label = Just a text box
     
    6966test_six.label = This is a large textarea
    7067test_six.value = Default text
    71 test_six.width = 60
    72 test_six.height = 30
     68test_six.cols = 60
     69test_six.rows = 30
    7370}}}
     71
     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
     76The 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
     78The following example includes a custom ticket field named `progress` in the report:
     79{{{
     80#!sql
     81SELECT 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
     95Note in particular the `LEFT OUTER JOIN` statement here.
    7496
    7597----