= track hours spent on tickets = [[TOC]] == Goals of TracHoursPlugin == The goal of this plugin is to help keep track of hours worked on tickets. TracHoursPlugin is an alternative [http://trac-hacks.org/wiki/TimingAndEstimationPlugin TimingAndEstimationPlugin], but with a different approach: * instead of adding hours only via ticket fields, there is a separate view for managing ticket hours. `/hours/` 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/` 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 == Components == === [source:trachoursplugin/0.11/trachours/hours.py TracHoursPlugin ] === === [source:trachoursplugin/0.11/trachours/setup.py SetupTracHours ] === === [source:trachoursplugin/0.11/trachours/web_ui.py TracHoursRoadmapFilter] === === [source:trachoursplugin/0.11/trachours/web_ui.py TracHoursSidebarProvider] === Uses the TicketSidebarProviderPlugin (if enabled) to === [source:trachoursplugin/0.11/trachours/ticket.py TracHoursByComment] === === [source:trachoursplugin/0.11/trachours/multiproject.py MultiprojectHours] === 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. [[Image(multiprojecthours.png)]] == How to Use !TracHours == The TracHoursHowto offers a guide of the features of the TracHoursPlugin and how to use them. == Installing and Enabling !TracHours == 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 upgrade}}} in order to create the correct database tables The TracHoursPlugin requires python at least 2.4 == Bugs/Feature Requests == Existing bugs and feature requests for TracHoursPlugin are [query:status!=closed&component=TracHoursPlugin&order=priority here]. If you have any issues, create a [/newticket?component=TracHoursPlugin&owner=k0s new ticket]. A preliminary path to 1.0 is outlined here: http://www.openplans.org/projects/topp-engineering/lists/trac/archive/2009/01/1231168734645 == Download == '''Note:''' The TracHoursPlugin requires python version at least 2.4 Download the [download:trachoursplugin zipped source], check out [/svn/trachoursplugin/0.11 using Subversion], or [source:trachoursplugin browse the source] with Trac. See also the trac plugin installation instructions at http://trac.edgewall.org/wiki/TracPlugins#InstallingaTracPlugin == Recent Changes == [[ChangeLog(trachoursplugin, 3)]] == Author/Contributors == ''Original developed at [http://topp.openplans.org The Open Planning Project]'' '''Authors:''' [http://www.openplans.org/people/novalis novalis], [wiki:k0s]