[[PageOutline(2-5,Contents,pullout)]] = Time estimation and tracking == Description This plugin supports time tracking by adding the following to Trac: * A ''Tasks'' admin panel, where tasks can be created and assigned a time estimate. * A ''Log'' admin panel, where users can log the time they spend on these tasks. * A new permission `TIME_TRACKING` that is required to use these panels. * Two new database tables to store these tasks and log entries. {{{#!rbox width=320px = Screenshot: Tasks and estimation panel [[Image(Tasks-Panel.png, width=300px)]] (rows link to ''Edit Task'' mode) }}} {{{#!rbox width=320px = Screenshot: Time logging panel [[Image(Log-Panel.png, width=300px)]] (rows link to ''Edit Log Entry'' mode) }}} Trac's reporting module can be used to define various reports that summarize these tasks and log entries. For reporting purposes tasks can be grouped into ''projects'' and ''categories'', and log entries can record a ''location''. {{{#!rbox width=320px = Screenshot: One of many possible reports [[Image(Example-Report.png, width=300px)]] }}} Tasks are created and estimated per ''year''. There is ''no'' formal connection between tasks and tickets. Informally wiki-links to tickets can be entered in the task or log descriptions. Optional: * Charts of burned up hours and activity per day using [http://www.chartjs.org/ Chart.js]. * WeekPlanPlugin integration for calendar view of log entries. === Charts Example: `[[TimeTrackingChart(year=2014,user=pinky|brain)]]` Parameters: * `width`: Width of the chart. (Defaults to 1200.) * `height`: Height of the chart. (Defaults to 600.) * `user`: `|`-separated list of users. (Defaults to all users.) * `category`: `|`-separated list of categories. (Defaults to all categories.) * `project`: `|`-separated list of projects. (Defaults to all projects.) * `task`: `|`-separated list of tasks. (Defaults to all tasks.) * `year`: `|`-separated list of years. (Defaults to all years.) * `mode`: `cumulative` or `activity`. (Defaults to cumulative.) {{{#!rbox width=320px = Screenshot: Charts macro [[Image(Example-Chart.png, width=300px)]] }}} === !WeekPlan Enable and register the `TimeTrackingWeekPlanEventProvider` in your `trac.ini` file under `[weekplan] event_providers`, and use the WeekPlanPlugin to display log entries. Specify the plan as `log:username`. Example: `[[WeekPlan(plan=log:pinky|log:brain)]]` == !Bugs/Feature Requests Existing bugs and feature requests for TimeTrackingPlugin are [report:9?COMPONENT=TimeTrackingPlugin here]. If you have any issues, create a [/newticket?component=TimeTrackingPlugin new ticket]. [[TicketQuery(component=TimeTrackingPlugin&group=type,format=progress)]] == Download Download the zipped source from [export:timetrackingplugin here]. == Source You can check out TimeTrackingPlugin from [/svn/timetrackingplugin here] using Subversion, or [source:timetrackingplugin browse the source] with Trac. == Installation Installation of the plugin requires the usual step with `easy_install`: * Trac 1.2: `easy_install https://trac-hacks.org/svn/timetrackingplugin/trunk` * Trac 1.0: `easy_install https://trac-hacks.org/svn/timetrackingplugin/tags/timetracking-1.1` Then enable it in Trac's plugin admin page or in your `trac.ini` file: {{{#!ini [components] timetracking.* = enabled }}} A database upgrade will be required as usual: {{{#!sh trac-admin path-to-your-trac-environment upgrade }}} Assign the new `TIME_TRACKING` and `TIME_TRACKING_ADMIN` permissions to the appropriate Trac groups / users, for example in Trac's permission admin page. Create reports under ''View Tickets''. You can copy from the [browser:timetrackingplugin/trunk/docs/example-reports.txt example reports]. == Configuration Optionally you can change some configuration options in your `trac.ini` file to hide or rename certain fields. The defaults are: {{{#!ini [timetracking] year = True location = True location.label = Location category.label = Category project.label = Project spent_hours.default = 8 weekends = False }}} == Recent Changes [[ChangeLog(timetrackingplugin, 3)]] == !Author/Contributors **Author:** [wiki:lucid] [[BR]] **Maintainer:** [[Maintainer]] [[BR]] **Contributors:**