Sums specified field in Roadmap and Milestone stats
Notice: This plugin is unmaintained and available for adoption.
This plugin combines the fields for the roadmap and milestone views. This is a complement to the Sum Fields plugin, which sums fields in a query or report. These plugins are useful when assessing progress based on "points" or "ideal days" of effort instead of ticket count.
This plugin was inspired by the CustomRoadmapPlugin but overcomes its limitation of requiring a patch. Additionally, this plugin allows for any field to be used to define a group, not just the default
status field. Lastly, this plugin was designed to be backward compatible with the default ticket count behavior, so that you can utilise as much or as little of its enhancements as required.
If you have any issues, create a new ticket.
4 / 8
Download the zipped source from here.
Installation and Configuration
- Install the plugin, after downloading and unzipping:
cd sumstatsplugin/0.12 sudo python setup.py install
See TracPlugins for more installation details and options. You will likely need to restart Trac's web server after installation.
- Enable the plugin in your
[components] sumstats.* = enabled
You can alternatively use the Trac Web Admin GUI.
- Replace the
DefaultTicketGroupStatsProviderwith this plugin's new
[roadmap] stats_provider = SumTicketGroupStatsProvider [milestone] stats_provider = SumTicketGroupStatsProvider
- (Optional) Configure the main
[sumstats] field = effort label = effort drilldown_label = Ticket effort filter = type!=epic query_args = col=summary,col=type,col=effort
fieldoption specifies which field to sum. The optional
labeloptions are used to define the
TicketGroupStatsobject. The optional
filteris a list of additional global filters for all groups (if specified it's currently limited to standard fields only). The optional
query_argsis a convenient, comma-delimited list that gets appended to each group's
query_args. See the examples below for more details.
- (Optional) Install the Google Visualization API Python gviz client library if using as a data source, see below.
Combining resolution and phase fields
Here is a sample
trac.ini file that combines a custom
phase field with a standard
[milestone-groups] closed = fixed closed.field = resolution closed.label = fixed closed.order = 1 closed.overall_completion = true readying = * readying.field = phase readying.order = 2 readying.color = YellowGreen implementation = implementation implementation.field = phase implementation.order = 3 implementation.color = Yellow waiting = waiting waiting.field = phase waiting.order = 4 waiting.color = White scoping = sizing,definition scoping.field = phase scoping.order = 5 scoping.color = Red
This plugin maintains the same syntax and semantics as the
DefaultTicketGroupStatsProvider to support backwards compatibility and ease of transition. If the
.field option is omitted, then the
status field is presumed. Note that a
.color option is required for each group (except for any default
new group you have). The "catch all"
* value is also supported, although there are currently no checks for duplicate "catch all" or otherwise redundant group definitions.
Burndown chart data source
This plugin also provides a Google Visualization API data source using the Python Gviz client library (which must be installed separately) that can populate a daily, agile-style burndown chart. Being a standard Google Visualization API data source, it can be accessed and visualized anywhere. However, it can also display burndown charts on Trac milestone pages by using the Trac Visualization plugin, for example:
The data source reuses the
filter option set in the
[sumstats] section. See step 4 of the Configuration section above for more details. No additional configuration is required to enable the burndown data source. However, it currently makes the following assumptions:
- "done" means closed as
- if a sum field is provided, then it's assumed to be a custom field (not a standard field)
- if the milestone cannot be extracted from the referrer url, then the current milestone is assumed.
The data is accessed at:
The above request returns a data table (in JSON response format) of up to 4 columns:
day- the day
total- the total sum or count for the day (both marked as
fixedand not closed)
todo- the remaining (i.e., not closed) sum or count for the day
done- the completed (i.e., closed as
fixed) sum or count for the day
The default response includes the
done fields in that order. To change which fields are returned and/or their order, eg to display the data in alternatively configured charts, you can add a (partial) query, ie the
tq portion below:
Only the select phrase is used at this time to specify which columns to return and their order. The
day field is always the first column and should be omitted from the select phrase. You may need to urlencode the
Let me know if you need additional flexibility in the query and I'll consider adding it. For example, ways to specify the milestone explicitly, a different timeframe grouping than daily, etc.
- 15069 by rjollos on 2015-11-25 19:40:43
0.9.1dev: Fix traceback when
The issue occurs in Trac 0.12 -
as_boolwas not as
robust as in later versions of Trac.
- 14026 by rjollos on 2014-07-25 11:31:38
Changed license to 3-Clause BSD with permission of author. Refs #11832.
- 13559 by jun66j5 on 2014-01-08 21:36:13
Removed duplicated definitions of option to fix hidden documentation for
TracInimacro (fixed #11480)