= Tools for visualizing and quick editing of effort estimations = == Description == !EstimationTools includes macros that visualize remaining effort estimations, e.g., as Burndown Chart, as well as an extension that allows inline editing of estimations in the query view. == Requirements == The charts use [http://code.google.com/apis/chart/ Google's Chart API], hence no additional python modules are required. The [EstimationToolsPlugin#HoursInPlaceEditor HoursInPlaceEditor] requires the XmlRpcPlugin. == Bugs/Feature Requests == Existing bugs and feature requests for EstimationToolsPlugin are [report:9?COMPONENT=EstimationToolsPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=EstimationToolsPlugin&owner=hoessler new ticket]. == Download == Download the zipped source from [download:estimationtoolsplugin here]. == Source == You can check out EstimationToolsPlugin from [http://trac-hacks.org/svn/estimationtoolsplugin here] using Subversion, or [source:estimationtoolsplugin browse the source] with Trac. == Install == * Trac 0.11 is supported in [http://trac-hacks.org/svn/estimationtoolsplugin/trunk trunk]. * The latest version for Trac 0.10 can be checked out [http://trac-hacks.org/svn/estimationtoolsplugin/branches/0.10 here]. * Deploy the egg: {{{ # python setup.py bdist_egg # cp dist/*.egg /path/to/trac/env/plugins }}} Please see [http://trac.edgewall.org/wiki/TracPlugins Trac's plug-in installation instructions] for more details. * You need to add a custom field in your trac.ini to store the estimations for the current remaining effort: {{{ [ticket-custom] estimatedhours = text estimatedhours.label = Remaining Hours estimatedhours.value = 0 }}} * if you want to use another field than {{{estimatedhours}}}, (e.g, {{{hours_remaining}}}), specify it here: {{{ [estimation-tools] estimation_field = hours_remaining }}} * and, finally, enable the plugin {{{ [components] estimationtools.* = enabled }}} == Features == === !BurndownChart === Creates burn down chart for given milestone. This macro creates a chart that can be used to visualize the progress in a milestone (aka sprint or product backlog). For a given milestone and time frame, the remaining, estimated effort is calculated. The macro has the following parameters: * `milestone`: '''mandatory''' parameter that specifies the milestone. * `startdate`: '''mandatory''' parameter that specifies the start date of the period (ISO8601 format) * `enddate`: end date of the period. If omitted, it defaults to either the milestones `completed' date, or `due`date, or today (in that order) (ISO8601 format) * `sprints`: list of comma-separated name of sprints to be included in calculation. Must be surrounded by brackets. * `width`: width of resulting diagram (defaults to 800) * `height`: height of resulting diagram (defaults to 200) * `color`: color specified as 6-letter string of hexadecimal values in the format `RRGGBB`. Defaults to `ff9900`, a nice orange. Examples: {{{ [[BurndownChart(milestone = Sprint 1, startdate = 2008-01-01)]] [[BurndownChart(milestone = Release 3.0, startdate = 2008-01-01, enddate = 2008-01-15, width = 600, height = 100, color = 0000ff, sprints = (Sprint 1, Sprint 2))]] }}} {{{ #!html Burndown Chart }}} === !HoursRemaining === Calculates remaining estimated hours for given milestone. `milestone` is a mandatory parameter. Example: {{{ [[HoursRemaining(milestone=Sprint 1)]] }}} === !WorkloadChart === Creates workload chart for given milestone. This macro creates a pie chart that shows the remaining estimated workload per ticket owner, and the remaining work days. It has the following parameters: * `milestone`: '''mandatory''' parameter that specifies the milestone. * `width`: width of resulting diagram (defaults to 400) * `height`: height of resulting diagram (defaults to 100) * `color`: color specified as 6-letter string of hexadecimal values in the format `RRGGBB`. Defaults to `ff9900`, a nice orange. Examples: {{{ [[WorkloadChart(milestone = Sprint 1)]] [[WorkloadChart(milestone = Sprint 1, width = 600, height = 100, color = 00ff00)]] }}} {{{ #!html Workload Chart }}} === !HoursInPlaceEditor === This component allows to edit the remaining hours field directly in the query view. [[Image(HoursInPlaceEditor.png)]] === Customising Queries === To show the remaining hours column in your SQL queries, you need to join the ticket table with the ticket_custom table, which contains the custom fields: {{{ SELECT ... # normal SELECT statement id AS ticket, ifnull(tc.value,'') as Hrs, # adds the value of estimatedhours in a column called Hrs, using '' if it doesn't exist. FROM ticket t LEFT JOIN ... # other LEFT JOIN statements (in the default Trac queries) can be left in place LEFT JOIN ticket_custom tc ON tc.ticket = t.id and tc.name = 'estimatedhours' ... }}} * You could change Hrs to 'Remaining Hours' to modify the column name. * You could change {{{''}}} to '0' to show 0 hours for tickets that don't have a corresponding estimatedhours field. * Tickets may have an estimated hours field that is empty, in which case you may still see "blank" == Recent Changes == [[ChangeLog(estimationtoolsplugin, 3)]] == Author/Contributors == '''Author:''' [wiki:hoessler] [[BR]] '''Contributors:'''