|Version 38 (modified by pio, 4 years ago) (diff)|
track hours spent on tickets
Table of Contents
Goals of TracHoursPlugin
- 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 alloted 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 when the following questions can be answered:
- 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.
For other trac time-tracking solutions, see http://trac.edgewall.org/wiki/TimeTracking
TracHours consists of a number of components that work together to help track your time:
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 any functionality from the TracHoursPlugin
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 adds hours information for milestones at /roadmap and /milestone/<milestone name>
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.
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, if the commenter has the TICKET_ADD_HOURS permission.
The TracHoursPlugin exports RSS from the /hours handler. This has been utilized in consumption 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.
How to Use TracHours
Installing and Enabling TracHours
NEW & HANDY!''
Updated Missing Module and modifed setup file
- FeederParserhttp://code.google.com/p/feedparser/downloads/list ,available as attachment
- DateUtilhttp://pypi.python.org/pypi/python-dateutil/1.4.1 ,request you to download from the net and create .egg
- TracSQLHelper ,available as attachment
- TracHoursPlugin(modified) ,available as attachment
Please install the plugins either the WebAdmin Way or the Trac.ini way
Once the Plugin is installed you need to upgrade your database and restart you server
TracHoursPlugin is enabled like any other trac plugin:
- download and install the plugin; see plugin installation instructions at http://trac.edgewall.org/wiki/TracPlugins#InstallingaTracPlugin
- enable the plugin. Use either the webadmin interface or add the following lines to the trac.ini file:
[components] trachours.* = enabled
- add give users the permission TICKET_ADD_HOURS
- you will need to run trac-admin <env> upgrade in order to create the correct database tables
Note: The TracHoursPlugin requires python at least 2.4
The TracHoursPlugin also requires the ComponentDependencyPlugin and the TicketSidebarProviderPlugin to be installed and enabled in order to work properly. (They may be enabled via the "Plugins" menu in the trac administration page.)
See also the trac plugin installation instructions at http://trac.edgewall.org/wiki/TracPlugins#InstallingaTracPlugin
-  by rjollos on 2014-10-10 06:03:10
0.6dev: Avoid exception when hours value is invalid.
-  by rjollos on 2014-10-10 06:03:00
0.6dev: Protect against exception when Total hours custom field is missing.
-  by rjollos on 2014-07-26 20:10:15
Tidy up codebase.
- Fixed indentation in templates.
- Removed obsolete Trac API method comments.
- Organized imports.
- Fixed compatibility with Trac 1.1.2 in which db parameters have been removed from methods.
- Removed use of macros.html (removed in Trac 1.1.2).
Original developed at The Open Planning Project
(11.3 KB) -
added by k0s 6 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 k0s 5 years ago.
(669.3 KB) -
added by nairsreejesh@… 5 years ago.
- tracsqlhelper.zip (11.7 KB) - added by nairsreejesh@… 5 years ago.
Download all attachments as: .zip