[[PageOutline(2-5,Contents,pullout)]] = Default and convert report dynamic variables to pulldowns == Description This plugin applies to all [http://trac.edgewall.org/wiki/TracReports#AdvancedReports:DynamicVariables reports that use dynamic variables]. The plugin does the following 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. !JavaScript is required for the latter feature. == Bugs/Feature Requests Existing bugs and feature requests for DynamicVariablesPlugin are [report:9?COMPONENT=DynamicVariablesPlugin here]. If you have any issues, create a [/newticket?component=DynamicVariablesPlugin new ticket]. [[TicketQuery(component=DynamicVariablesPlugin&group=type,format=progress)]] == Download Download the zipped source from [download:dynamicvariablesplugin here]. == Source You can check out DynamicVariablesPlugin from [http://trac-hacks.org/svn/dynamicvariablesplugin here] using Subversion, or [source:dynamicvariablesplugin browse the source] with Trac. == Installation and Configuration 1. Install the plugin, after downloading and unzipping: {{{#!sh cd dynamicvariablesplugin/0.12 sudo python setup.py bdist_egg sudo cp dist/TracDynamicVariables*.egg /your/trac/location/plugins/ }}} See [http://trac.edgewall.org/wiki/TracPlugins TracPlugins] for more installation details and options. You will likely need to restart Trac's web server after installation. 2. Enable the plugin in your `trac.ini` file: {{{#!ini [components] dynvars.* = enabled }}} You can alternatively use the Trac Web Admin GUI to enable any or all rules. 3. (Optional) Set a {{{[dynvars]}}} section of field names with explicit option values: {{{#!ini [dynvars] daysback.options = 7|30 }}} In the above example, {{{daysback}}} is not a custom ticket field but can set a {{{DAYSBACK}}} dynamic variable via a pulldown with the specified options. A {{{[dynvars]}}} section is not needed to configure dynamic variables that exactly match built-in or custom field names as shown in the screenshots below. 4. Create/modify reports so that the names used for dynamic variables exactly match the names of the select field that it corresponds to. See an example below. == Example The only required configuration is 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: {{{#!sql 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 }}} The result is as follows: === Before [[Image(before.png)]] === After [[Image(after.png)]] Completed milestones are omitted from the pulldown menu. == Recent Changes [[ChangeLog(dynamicvariablesplugin, 3)]] == Author/Contributors '''Author:''' [wiki:robguttman] [[BR]] '''Maintainer:''' [[Maintainer]] [[BR]] '''Contributors:'''