wiki:TimingAndEstimationPlugin

Version 114 (modified by rjollos, 13 months ago) (diff)

Fix attachment link after upgrade to Trac 1.0

Estimation and Time Tracking

Demo Site | User Manual | Open Tickets | new ticket

Description

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).

Supported Versions

Currently this has been tested on:

  • Python >=2.5 (perhaps younger pythons will work on earlier trac versions).
  • Trac >= .10
  • DB, should support all three major free backends
    • sqlite3 >= 3.6.8 - Required for SAVEPOINT calls to work
    • MySql
    • PostgreSQL
  • Genshi
    • for trac 11 you need a Genshi >= 5
    • for trac 12 you need a Genshi >= 6 (Trac installs this automatically)

Getting the Plugin

Download the source using Svn at:

Download the zipped source :

When downloading these files the extention is lost, or the filename corrupted. 
  a simple rename to filename.zip seems to resolve it the contents are intact

Browse the source using Trac:

In the repository there is a script folder 0.12/0.11 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)

Documents

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
      Upgrading fields
      Upgrading reports
      Upgrading usermanual
      Done Upgrading
      Upgrade done.
      
  4. Reload/restart your HTTPD / other webserver / Tracd. That's it.

Post Installation Configuration Options

Components

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

Permissions (Trac>=11 only)

Post Commit Hooks

The scripts folder contains various post-commit scripts. The svn and git post receive/commit hooks call the trac-post-commit.py script with the correct command line arguments (see #8737 for more information and an alternative single file git-post-receive). There are a simple svn-post-commit.sh, a simple git-post-receive, and a more complex git_post_receive.py that tries to ensure that each commit is sent to trac only once (by default moving a commit from one branch to another will cause the comment (and time) to be reposted to trac again(resulting in unintentional extra time on tickets).

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 an uninstall script in the scripts folder that tries to make uninstall easy. I dont promise it will get everything, but it should get you most of the way there.
  • see #995 - old uninstall ticket, which might provide some insight.

Patches

Related Plugins

Interacting with T&E

If you want a plugin that you are writing to add reports to the management page, there is a file, reportmanager.py, that should make interacting with its reports easier.

Recent Changes

Full Change Log

[14062] by bobbysmith007 on 2014-08-04 15:13:24
Updated csv export permissions monkey patch for trac 1.0 re #11898
[14061] by bobbysmith007 on 2014-08-04 15:04:36
branched for trac1.0
[13377] by bobbysmith007 on 2013-09-05 17:01:48
removed misleading sentence in the user manual
[12966] by bobbysmith007 on 2013-04-08 20:47:56
remove hours/work summary reports from the view-tickets screen re #11005

Author/Contributors

Author: bobbysmith007
Contributors:

  • Aquafold has provided a license to their excellent Aqua Data Studio application to help further development
  • Obsidian Software sponsored the work to create a permission enabled branch
  • Alessio Massaro: wiki:masariello
    • Helped Get Reports working in postgres and started moving toward generic work rather than hours
  • kkurzweil@…
    • helped postegresql db backend compatiblity
  • Jonas Borgstrom : t:wiki:JonasBorgstrom
    • made it so that base_url was unnecessary
  • Colin Guthrie
    • Refactored custom reports stuff into a single class/module that can be copied to other plugins, to make interaction with T&E easier.
  • David Abrahams
    • Trac.11 - Stream filters to prettify the Reports Screen and make TotalHours not editable
  • Tay Ray Chuan
    • Added a stopwatch to the ticket pages
  • Josh Godsiff, for Oxide Interactive
    • added props table client reformatting to remove extra whitespace