Custom Ticket Fields

Trac support 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.

Configuriation

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)
 ...

Looking at the example below should help 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.
    • width: Width in columns.
    • height: 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.width = 60
test_six.height = 30

See also: TracTickets, TracIni