= Timing and Estimation Plugin = ''' To see it in action [https://sekhmet.acceleration.net/ADW/TestForTimingAndEstimation Head This Way!] ''' == Description == This is a plugin that adds (aspires to add) estimation and time tracking to Trac. This basically adds !CustomFields and !CustomReports and an interface for filling the dynamic variables for the report. (requires javascript). '''Because we are using ITicketChangeListener this plugin is only compatible with Trac >= .10''' == Documents == * [TimeEstimationAndQuotingSpecification Initial Plugin Specification] * [TimeEstimationUserManual User Manual] * [wiki:TimingAndEstimationSVNPostCommitHook SVN Post-Commit-Hook] Clock time and make comments from your svn commit message == Installation Help == 1. Install the plugin (either for a single project, or globally). See the details on how to install a trac plugin at: [trac:TracPlugins] 1. Run `$ trac-admin /path/to/projenv upgrade` * You should get a message like this: {{{ Timing and Estimation needs an upgrade Upgrading Database Creating bill_date table Creating report_version table Upgrading fields Upgrading reports Upgrading usermanual Done Upgrading Upgrade done. }}} 1. Reload/restart your HTTPD / WebServer / Tracd. That's it. == Post Installation Configuration Options == By default, the TimingAndEstimationPlugin's four components will all be active. However, you can disable some of the components if you want to. (The easiest way to do this is to ensure you have the trac:WebAdmin plugin installed.) The plugin's components are: 1. !TimeTrackingSetupParticipant * Required component. 1. !TimeTrackingTicketObserver * Ensures that the "Total Hours" values are updated when a user edits a ticket's "Add Hours to Ticket" field. You would not normally want to disable this component. 1. !TicketWebUiAddon 1. !TimingEstimationAndBillingPage == Bugs/Feature Requests == Existing bugs and feature requests for TimingAndEstimationPlugin are [report:9?COMPONENT=TimingAndEstimationPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=TimingAndEstimationPlugin&owner=bobbysmith007 new ticket]. == Supported Versions == Currently this has been tested on Python 2.4 (I think it should run on 2.3 as well though) and Trac .10dev with sqlite >= 3.2.3 backend. We have been working on improving support for the postgres/mysql backends, but I do not currently have postgres to test on, so this is a user driven process. ''I believe that the postgre backend is fairly stable now'' '''Because we are using ITicketChangeListener this plugin is only compatable with Trac >= .10''' == Download == Download the zipped source from [download:timingandestimationplugin here]. == Source == You can check out TimingAndEstimationPlugin from [http://trac-hacks.org/svn/timingandestimationplugin/trunk here] using Subversion, or [source:timingandestimationplugin/trunk browse the source] with Trac. In the repository there is a [browser:timingandestimationplugin/scripts scripts folder] that contains some various python files that I have written to perform billing queries across an entire directory of tracs and email the results to a specified address. As is these are written to work in my setup and some paths at the top of each file will probably need to be changed. These are mostly included because I wrote them for myself and thought others might want to perform similar tasks. (See: [wiki:TimingAndEstimationScriptHelp script help]) == Example == This basically adds !CustomFields and !CustomReports and an interface for filling the dynamic variables for the reports (requires javascript). The goal of this plugin is to allow us to spec out projects (with estimates) and bill our clients based on the time records recorded. == Related Plugins == * The ScrumBurndownPlugin makes use of this plugin to provide a javascripted daily burndown chart, useful in the agile development methodology known as Scrum. == Recent Changes == [[ChangeLog(timingandestimationplugin, 3)]] == Author/Contributors == '''Author:''' [wiki:bobbysmith007] [[BR]] '''Contributors:'''