|Version 8 (modified by robguttman, 3 years ago) (diff)|
Default and convert report dynamic variables to pulldowns
This plugin applies to all reports that use dynamic variables. The plugin does two things for dynamic variables whose (uppercase) name exactly matches a built-in or custom (lowercase) select field name:
- Dynamic variables are set to default values if unset
- The text fields for dynamic variables are converted to pulldown menus
- Install the plugin (after downloading and unzipping):
cd dynamicvariablesplugin/0.12 sudo python setup.py bdist_egg sudo cp dist/TracDynamicVariables*.egg /your/trac/location/plugins/
See TracPlugins for more installation details and options. You'll likely need to restart Trac's web server after installation.
- Enable the plugin:
[components] dynvars.* = enabled
You can alternatively use the Trac Web Admin GUI to enable any or all rules.
- (Optional) Set a [dynvars] section of field names with explicit option values. Example:
[dynvars] daysback.options = 7|30
In the above example, daysback is not a custom ticket field but can be set a DAYSBACK dynamic variable by a pulldown with the specified options. A [dynvars] section is not needed for dynamic variables that exactly match built-in or custom field names as shown in the screenshots below.
- Create/modify reports so that the name used for dynamic variables exactly match the name of the select field that it corresponds to. See an example below.
If you have any issues, create a new ticket.
Download the zipped source from here.
The only configuration options are in defining SQL reports. For example, a report for a specific milestone that also queries for a custom queue select field could be defined like this:
SELECT p.value AS __color__, t.id AS ticket, summary, component, severity, reporter FROM ticket t LEFT OUTER JOIN milestone m ON t.milestone = m.name LEFT JOIN enum p ON p.name = t.severity AND p.type = 'severity' LEFT OUTER JOIN ticket_custom q ON q.ticket = t.id and q.name = 'queue' WHERE q.value = '$QUEUE' AND milestone = '$MILESTONE' ORDER BY m.due ASC, p.value
Here's what this report would look like both before and after this plugin is installed and enabled:
Completed milestones are skipped in the pulldown menu.