Track time spent on tickets

Description

This is a plugin that adds a Work Log capability to Trac.

Basically, it allows you to register the fact you have started work on a ticket, which effectively allows you to clock on and clock off. It uses javascript to add a button to the ticket page to allow you to start/stop working on a given ticket.

Work can only be started by the user to which the ticket is assigned, which means there is also a limitation that only one user can work on a particular ticket (see #1943).

If the TimingAndEstimationPlugin is installed then when you clock off, the time spent on the ticket will be recorded.

If you visit the Work Log page (a new mainnav entry), you will see a list of people (developers) and which tickets they are currently working on. Work log events are also logged to the Timeline for a historical view.

Several options can be configured from the Admin page.

TODO

  • XMLRPC Extension point
  • Ajax based popup reminders when viewing Trac (this is perhaps not needed as there is a view at the top of all ticket pages.)
  • Develop Companion Desktop Application as per #1667
  • Add a Developer Work Profile to graphically show how "utilized" a developer is! Root out the lazy! (Perhaps integrate graphs etc. from PSP and TSP development models)

Bugs/Feature Requests

Existing bugs and feature requests for WorkLogPlugin are here.

If you have any issues, create a new ticket.

Source

You can download zipped source, check out WorkLogPlugin from here using Subversion, or browse the source with Trac.

Installation

  1. Install the plugin, see details here.
  2. Be sure that the plugin is enabled. Add "worklog.* = 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:
      Work Log needs an upgrade
      Upgrading Database
      Creating work_log table
      Upgrading usermanual
      Done upgrading Work Log
      Upgrade done.
      
    • If your database was not upgraded, make sure that you have the correct genshi version: easy_install http://svn.edgewall.org/repos/genshi/trunk
  4. Reload/restart your HTTPD / other webserver / Tracd. That's it.

Configuration

In order to enable the automatic updating of your Total Hours field when using the TimingAndEstimationPlugin you will need this configuration value:

[worklog]
timingandestimation = true

In order to enable the automatic updating of your Total Hours field when using the TracHoursPlugin you will need this configuration value:

[worklog]
trachoursplugin = true

Other configuration values (found in source:worklogplugin/0.11/worklog/manager.py) include:

  • autostopstart - bool
  • autoreassignaccept - bool
  • comment - bool
  • timingandestimation - bool
  • roundup - int

Recent Changes

[12358] by rjollos on 11/16/12 01:53:44

Fixes #10628 : Added missing import of datetime in api.py. Thanks to Bobby for the patch.

[12245] by rjollos on 10/23/12 21:32:18

Fixes #10532: Pass cnum to Ticket.save_changes as a string, which is what the method expect. This didn't cause a problem until Trac 1.0, however. Thanks to rj for the report.

[12090] by rjollos on 10/02/12 03:33:16

Refs #10206, #10251:

  • Renamed timeline_hook.py to timeline.py, with the goal of making the source code layout match the standard for Trac plugins.
  • Fixed an error introduced in [12089] due to a missing import.

As in [12088], if your trac.ini file specifies the individual components to enable, you'll have to make the following change:

worklog.timeline_hook.worklogtimelineaddon = enabled

->

worklog.timeline.worklogtimelineeventprovider = enabled

[12089] by rjollos on 10/02/12 03:23:26

Refs #10206, #10251:

  • Made the trunk compatible with Trac 0.11, by rolling out changes introduced in [9480] and later. There is nothing forcing us to adapt to the new Trac DB API at the moment, and it is easier to maintain a single code-base that is compatible back to Trac 0.11. The Trac DB API changed again in 1.0, so we are better off waiting and adapting to that API down the road anyway.
  • Attempted to cleanup the mess of import statements in every module. Modified the entry_points to adapt to these changes.
  • Made the XmlRpc lib an optional component. There is more work to do here still.

Author/Contributors

Author: coling
Maintainer: coling
Contributors: rjollos
License: MIT

Attachments