Contents
Track hours spent on tickets
Description
This plugin helps to keep track of hours worked on tickets. This is an alternative to TimingAndEstimationPlugin, but with a different approach:
- Instead of adding hours only via ticket fields, there is a separate view for managing ticket hours.
/hours/<ticket number>
displays the accrued hours for a particular ticket with a timeline-like view, but should also allow adding of new hours (by default, on "today", but this should be changeable via dropdown menus for day, month, year, etc), editing previously entered hours (amount, date, description) and deleting previously allotted hours if you have the appropriate permissions (TICKET_ADD_HOURS
for your own hours,TRAC_ADMIN
for the hours of others). - A management and query view is at
/hours
. This view displays the hours for all tickets for a given time period (last week, by default) in a way that combines the query interface for querying tickets and the timeline display for hours on the tickets in the time period. Query filters are available to find hours for people, hours for tickets of a certain component, etc. - Hours are uniquely assigned to tickets and people.
- Hours may have a description, which should be displayed in the applicable views; if a description is provided, the hours and description are logged to ticket comments.
- Tickets have links to
/hours/<ticket number>
as the total hours field so that a user can add and view hours for the ticket.
Hour tracking and estimation is most useful for the following types of questions:
- How much time has been spent on a project?
- How much time remains in a budget (estimate for a project)?
- How much time have we committed to for the next time period?
- How much time is a developer committed to over the next time period?
If we put hour estimates on tickets, assign tickets to people, associate tickets with milestones, and give milestones due dates, TracHours can generate reports to answer those questions.
The TracHoursHowto offers a guide to the features of the TracHoursPlugin and how to use them.
For other Trac time-tracking solutions, see t:TimeTracking.
Components
TracHours consists of a number of components that work together to help track time:
TracHoursPlugin
TracHoursPlugin
is the core component of TracHours.
- API function.
- Navigation bar provider.
- Query view for
/hours
. - Ticket hours view for
/hours/<ticket number>
- Stream filter for checking and rendering of estimated hours and total hours fields for tickets
- RSS feeds at
/hours?format=rss
and/hours/<ticket number>?format=rss
This component must be enabled to use the TracHoursPlugin functionality.
SetupTracHours
SetupTracHours
sets up the database and custom fields for the TracHoursPlugin. You must enable this component for anything to work, including the TracHoursPlugin
component.
TracHoursRoadmapFilter
TracHoursRoadmapFilter
adds hours information for milestones at /roadmap
and /milestone/<milestone name>
TracHoursSidebarProvider
The TracHoursSidebarProvider
component uses the TicketSidebarProviderPlugin (if enabled) to add a form to each ticket for direct addition of hours to the ticket. Hours will be logged as the authenticated user and comments will not be made.
TracHoursByComment
The TracHoursByComment
component enables adding hours by ticket comments. Comments containing snippets like 5 hours
, 1 hour
, 3.7 hours
, or 0:30 hours
will be added to the total hours for the ticket, provided the commenter has the TICKET_ADD_HOURS
permission.
MultiprojectHours
The TracHoursPlugin exports RSS from the /hours
handler. This has been utilized to provide hours reports across projects sharing the same parent directory. If trachours.multiproject
is enabled, then /hours/multiproject
will become a handler front-ending hours reports throughout the project and a link to this will appear on the /hours
page to /hours/multiproject
.
The multiproject report breaks down hours by project and worker giving row and column totals. If there are no hours for a project, then that project will not be shown.
Bugs/Feature Requests
Existing bugs and feature requests for TracHoursPlugin are here.
If you have any issues, create a new ticket.
defect |
84 / 94 |
||
---|---|---|---|
enhancement |
17 / 39 |
||
task |
7 / 8 |
Download
Download the zipped source from here.
Source
You can check out TracHoursPlugin from here using Subversion, or browse the source with Trac.
Installation
This plugin requires Python at least 2.4 as well as the following components:
Additionally, you will require on your server:
- DateUtil, or package python-dateutil on Debian based systems.
- FeedParser, or package python-feedparser on Debian based systems.
General instructions on installing Trac plugins can be found on the TracPlugins page. Then also ensure the following steps are performed:
- Enable the plugin, by using either the webadmin interface or adding the following lines to your
trac.ini
file:[components] trachours.* = enabled
- You will need to upgrade
trac-admin <env> upgrade
to create the correct database tables. - Give users the permission
TICKET_ADD_HOURS
.
Recent Changes
- 17874 by rjollos on 2020-11-18 08:17:17
-
TracHours 0.7.4dev: Remove
ipnr
attribute from query
The
ipnr
attribute was removed in Trac 1.3.1
(trac:#11901)
Refs #13907.
- 17873 by rjollos on 2020-11-18 08:10:55
-
TracHours 0.7.4dev: Fix dependencies
- Pin feedparser to Py2-compatible version
- Account for ComponentDependencyPlugin rename
Refs #13907.
- 17388 by emecas on 2019-06-26 00:30:13
-
TracHours 0.7.4dev: Apply review
(more)
Author/Contributors
Originally developed at The Open Planning Project.
Attachments (2)
-
multiprojecthours.png (11.3 KB) - added by 16 years ago.
screenshot for of the /hours/multiproject page for two projects and one worker (k0s)
- hours-ticket-sidebar.png (11.2 KB) - added by 15 years ago.
Download all attachments as: .zip