close
Warning:
AdminModule failed with TracError: Unable to instantiate component <class 'trac.admin.web_ui.PluginAdminPanel'> (super(type, obj): obj must be an instance or subtype of type)
- Timestamp:
-
Sep 13, 2025, 3:01:44 PM (5 months ago)
- Author:
-
trac
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v2
|
v3
|
|
| 4 | 4 | == Configuration |
| 5 | 5 | |
| 6 | | Configuring custom ticket fields is done in the [wiki:TracIni trac.ini] file. All field definitions should be under a section named `[ticket-custom]`. |
| | 6 | Configure custom ticket fields in the [TracIni#ticket-custom-section "[ticket-custom]"] section of trac.ini. |
| 7 | 7 | |
| 8 | 8 | The syntax of each field definition is: |
| … |
… |
|
| 15 | 15 | The example below should help to explain the syntax. |
| 16 | 16 | |
| | 17 | === Field Names |
| | 18 | A field name can only contain lowercase letters a-z, uppercase letters A-Z or digits 0-9, and must not start with a leading digit. |
| | 19 | |
| | 20 | The following field names are reserved and can not be used for custom fields: |
| | 21 | * cc |
| | 22 | * changetime |
| | 23 | * col |
| | 24 | * comment |
| | 25 | * component |
| | 26 | * desc |
| | 27 | * description |
| | 28 | * format |
| | 29 | * group |
| | 30 | * groupdesc |
| | 31 | * id |
| | 32 | * keywords |
| | 33 | * max |
| | 34 | * milestone |
| | 35 | * or |
| | 36 | * order |
| | 37 | * owner |
| | 38 | * page |
| | 39 | * priority |
| | 40 | * report |
| | 41 | * reporter |
| | 42 | * resolution |
| | 43 | * row |
| | 44 | * severity |
| | 45 | * status |
| | 46 | * summary |
| | 47 | * time |
| | 48 | * type |
| | 49 | * verbose |
| | 50 | * version |
| | 51 | |
| 17 | 52 | === Available Field Types and Options |
| 18 | 53 | |
| … |
… |
|
| 20 | 55 | * label: Descriptive label. |
| 21 | 56 | * value: Default value. |
| 22 | | * order: Sort order placement; this determines relative placement in forms with respect to other custom fields. |
| 23 | | * format: One of: |
| 24 | | * `plain` for plain text |
| 25 | | * `wiki` to interpret the content as WikiFormatting |
| 26 | | * `reference` to treat the content as a queryable value (''since 1.0'') |
| 27 | | * `list` to interpret the content as a list of queryable values, separated by whitespace (''since 1.0'') |
| | 57 | * order: Sort order placement relative to other custom fields. |
| | 58 | * max_size: Maximum allowed size in characters (//Since 1.3.2//). |
| | 59 | * format: One of: |
| | 60 | * `plain` for plain text |
| | 61 | * `wiki` for [WikiFormatting wiki formatted] content |
| | 62 | * `reference` to treat the content as a queryable value |
| | 63 | * `list` to interpret the content as a list of queryable values, separated by whitespace |
| | 64 | * ticketlink_query: Query for linkifying ticket values. |
| | 65 | Not applicable for format `plain` and `wiki`. |
| 28 | 66 | * '''checkbox''': A boolean value check box. |
| 29 | 67 | * label: Descriptive label. |
| 30 | 68 | * value: Default value, 0 or 1. |
| 31 | 69 | * order: Sort order placement. |
| | 70 | * ticketlink_query: Query for linkifying ticket values. |
| 32 | 71 | * '''select''': Drop-down select box. Uses a list of values. |
| 33 | 72 | * label: Descriptive label. |
| … |
… |
|
| 35 | 74 | * value: Default value (one of the values from options). |
| 36 | 75 | * order: Sort order placement. |
| | 76 | * ticketlink_query: Query for linkifying ticket values. |
| 37 | 77 | * '''radio''': Radio buttons. Essentially the same as '''select'''. |
| 38 | 78 | * label: Descriptive label. |
| … |
… |
|
| 40 | 80 | * value: Default value, one of the values from options. |
| 41 | 81 | * order: Sort order placement. |
| | 82 | * ticketlink_query: Query for linkifying ticket values. |
| 42 | 83 | * '''textarea''': Multi-line text area. |
| 43 | 84 | * label: Descriptive label. |
| 44 | 85 | * value: Default text. |
| 45 | | * cols: Width in columns. //(Removed in 1.1.2)// |
| 46 | 86 | * rows: Height in lines. |
| 47 | 87 | * order: Sort order placement. |
| | 88 | * max_size: Maximum allowed size in characters (//Since 1.3.2//). |
| 48 | 89 | * format: Either `plain` for plain text or `wiki` to interpret the content as WikiFormatting. |
| 49 | | * '''time''': Date and time picker. (''Since 1.1.1.'') |
| | 90 | * '''time''': Date and time picker. (//Since 1.1.1//) |
| 50 | 91 | * label: Descriptive label. |
| 51 | 92 | * value: Default date. |
| … |
… |
|
| 60 | 101 | Macros will be expanded when rendering `textarea` fields with format `wiki`, but not when rendering `text` fields with format `wiki`. |
| 61 | 102 | |
| | 103 | For applicable fields, the `ticketlink_query` option |
| | 104 | overrides [[TracIni#query-ticketlink_query-option|"[query] ticketlink_query"]], and the format is the same as |
| | 105 | that option. When the `ticketlink_query` option |
| | 106 | is not specified, `[query]` `ticketlink_query` is used to |
| | 107 | linkify the field. |
| | 108 | |
| 62 | 109 | === Sample Configuration |
| 63 | 110 | |
| … |
… |
|
| 84 | 131 | test_five = radio |
| 85 | 132 | test_five.label = Radio buttons are fun |
| 86 | | test_five.options = uno|dos|tres|cuatro|cinco |
| | 133 | test_five.options = |uno|dos|tres|cuatro|cinco |
| 87 | 134 | test_five.value = dos |
| 88 | 135 | |
| … |
… |
|
| 109 | 156 | }}} |
| 110 | 157 | |
| 111 | | '''Note''': To make a `select` type field optional, specify a leading `|` in the `fieldname.options` option. |
| | 158 | '''Note''': To make a `select` type field optional, specify a leading `|` in `fieldname.options` (e.g. `test_five`). |
| 112 | 159 | |
| 113 | 160 | === Reports Involving Custom Fields |
| … |
… |
|
| 143 | 190 | Note in particular the `LEFT OUTER JOIN` statement here. |
| 144 | 191 | |
| 145 | | Note that if your config file uses an '''uppercase''' name: |
| | 192 | Note that option names in trac.ini are case-insensitive, so even if your option name includes uppercase characters: |
| 146 | 193 | {{{#!ini |
| 147 | 194 | [ticket-custom] |
| 148 | | |
| 149 | 195 | Progress_Type = text |
| 150 | 196 | }}} |
| 151 | | you would use '''lowercase''' in the SQL: `AND c.name = 'progress_type'`. |
| | 197 | you must use '''lowercase''' in the SQL: `AND c.name = 'progress_type'`. |
| 152 | 198 | |
| 153 | 199 | ---- |