Version 52 (modified by bewst, 10 years ago) (diff)


Timing and Estimation Plugin

Demo Site | User Manual | Open Tickets | new ticket


This is a plugin that adds (aspires to add) estimation and time tracking to Trac.

This basically adds CustomFields and CustomReports and an interface for filling the dynamic variables for the report. (requires javascript).

Because we are using ITicketChangeListener this plugin is only compatible with Trac >= .10

Supported Versions

Currently this has been tested on Python 2.4 (I think it should run on 2.3 as well though) and Trac .10dev with sqlite >= 3.2.3 backend. This plugin should also support mysql and postgresql DB backends.

  • Genshi is supported in the Trac 0.11 branch of this plugin.
  • Clearsilver is a requirement for running the Trac 0.10 version of this plugin .
  • Because we are using ITicketChangeListener this plugin is only compatable with Trac >= .10

Getting the Plugin

Download the source using Svn at:

Download the zipped source :

  • [download:timingandestimationplugin/branches/trac0.10 Zipped source for plugin for Trac0.10].
  • [download:timingandestimationplugin/branches/trac0.11 Zipped source for plugin for Trac0.11].

Browse the source using Trac:

In the repository there is a scripts folder that contains some various python files that I have written to perform billing queries across an entire directory of tracs and email the results to a specified address. As is these are written to work in my setup and some paths at the top of each file will probably need to be changed. These are mostly included because I wrote them for myself and thought others might want to perform similar tasks. (See: script help?)


Installation Help

  1. Install the plugin (either for a single project, or globally). See the details on how to install a trac plugin at: TracPlugins
  2. Be sure that the plugin is enabled. Add "timingandestimationplugin.* = enabled" to trac.ini (in the [components] subheading).
    • Alternatively, this can be enabled in the Web Admin section of the website as well
  3. Run $ trac-admin /path/to/projenv upgrade
    • You should get a message like this:
      Timing and Estimation needs an upgrade
      Upgrading Database
      Creating bill_date table
      Creating report_version table
      Upgrading fields
      Upgrading reports
      Upgrading usermanual
      Done Upgrading
      Upgrade done.
      • I saw the following after "Upgrading fields." I think it's normal, but it would be nice to get some confirmation
        no migration for upgrade2 ('No module named upgrade2',) ['__doc__', '__getitem__', '__init__', '__module__', '__str__', 'args'] 
        no migration for upgrade3 ('No module named upgrade3',) ['__doc__', '__getitem__', '__init__', '__module__', '__str__', 'args'] 
        Running migrate version 4
  1. Reload/restart your HTTPD / other webserver / Tracd. That's it.

Post Installation Configuration Options

By default, the TimingAndEstimationPlugin's four components will all be active. However, you can disable some of the components if you want to. (The easiest way to do this is to ensure you have the trac:WebAdmin plugin installed.)

The plugin's components are:

  1. TimeTrackingSetupParticipant
    • Required component.
  2. TimeTrackingTicketObserver
    • Ensures that the "Total Hours" values are updated when a user edits a ticket's "Add Hours to Ticket" field. You would not normally want to disable this component.
  3. TicketWebUiAddon
  4. TimingEstimationAndBillingPage

Bugs/Feature Requests

Existing bugs and feature requests for TimingAndEstimationPlugin are here.

If you have any issues, create a new ticket.

Uninstall Help

There is not a lot here, but ticket:995 is the best source of information for people uninstalling the plugin.


This basically adds CustomFields and CustomReports and an interface for filling the dynamic variables for the reports (requires javascript).

The goal of this plugin is to allow us to spec out projects (with estimates) and bill our clients based on the time records recorded.

Related Plugins

  • The ScrumBurndownPlugin makes use of this plugin to provide a javascripted daily burndown chart, useful in the agile development methodology known as Scrum.

Recent Changes

Full Change Log

14864 by bobbysmith007 on 2015-08-07 17:47:03
fix broken version number
14863 by bobbysmith007 on 2015-08-07 17:32:40
Fixing bug in ticket_change_delete of ticket_daemon re #12532
14856 by bobbysmith007 on 2015-08-04 14:45:17
trying to work around mysql integrity errors re #12470
14580 by bobbysmith007 on 2015-05-11 15:09:22
Replace CSV filter with one that doesnt require monkey patching (or does this in a more controlled manner) v1.4.7b fix #12305


Author: bobbysmith007