Source

trac-ticketlinks / wiki-default / TracTicketsCustomFields

= Custom Ticket Fields =
Trac supports adding custom, user-defined fields to the ticket module. Using custom fields, you can add typed, site-specific properties to tickets.

'''Note: In Trac 0.8, this feature is still experimental.'''

== Configuration ==
Configuring custom ticket fields is done in the TracIni config file.

All field definitions should be under a section named '''{{{[ticket-custom]}}}''' in the ini-file.

The syntax of each field definition is:
{{{
 FIELD_NAME = TYPE
 (FIELD_NAME.OPTION = VALUE)
 ...
}}}
The example below should help to explain the syntax.

=== Available Field Types and Options ===
 * '''text''': A simple (one line) text field.
   * label: Descriptive label.
   * value: Default value.
   * order: Sort order placement. (Determines relative placement in forms.)
 * '''checkbox''': A boolean value check box.
   * label: Descriptive label.
   * value: Default value (0 or 1).
   * order: Sort order placement.
 * '''select''': Drop-down select box. Uses a list of values.
   * options: List of values, separated by '''|''' (vertical pipe).
   * value: Default value (Item #, starting at 0).
   * order: Sort order placement.
 * '''radio''': Radio buttons. Essentially the same as '''select'''.
   * label: Descriptive label.
   * options: List of values, separated by '''|''' (vertical pipe).
   * value: Default value (Item #, starting at 0).
   * order: Sort order placement.
 * '''textarea''': Multi-line text area.
   * label: Descriptive label.
   * value: Default text.
   * cols: Width in columns.
   * rows: Height in lines.
   * order: Sort order placement.

=== Sample Config ===
{{{
[ticket-custom]

test_one = text
test_one.label = Just a text box

test_two = text
test_two.label = Another text-box
test_two.value = Just a default value

test_three = checkbox
test_three.label = Some checkbox
test_three.value = 1

test_four = select
test_four.label = My selectbox
test_four.options = one|two|third option|four
test_four.value = 2

test_five = radio
test_five.label = Radio buttons are fun
test_five.options = uno|dos|tres|cuatro|cinco
test_five.value = 1

test_six = textarea
test_six.label = This is a large textarea
test_six.value = Default text
test_six.cols = 60
test_six.rows = 30
}}}

=== Notes ===
Do not insert space characters between '{{{|}}}'-separated option values for ''radio'' and ''select'' fields.
 * ok: {{{FIELD_NAME.options = un|deux|trois}}}
 * invalid: {{{FIELD_NAME.options = un | deux | trois}}}

----
See also: TracTickets, TracIni, TracIniReportCustomFieldSample