[[PageOutline(2-5,Contents,pullout)]] = Agilo Ticket Report Plugin == Description [http://agile42.com/cms/pages/ Agilo] is a nice scrum process tools base on Trac. Every task ticket has an estimation time(hours), the team manager wants to know exactly the real working time compared with estimated time. That is a metric of team member's working efficiency, so I developed this plugin for Agilo. Thanks to the Agilo developers for sharing this tool. == Solution There is table named "ticket_change" in database make records of every ticket changes. So we can do data mining in current Trac Database. * '''Real working hours''' = ticket closed time - ticket accept time - none working time * '''Working time''' = from 9:00 to 18:00 (exactly 9 hour including 1 hour lunch time) from Monday to Friday * '''None working time''' = from 18:00 to next day 09:00 of working days, Sat, Sun, Holidays (manually configurable) == Ticket Work Flow Add "pending" status for ticket, if you do not want to add "pending" status, it also works. Why add "pending" status ? Sometime, we may accept several tickets at one time in a sprint, we could not resolve tickets at same time, or some tickets may block by our customers. So, if we want to calculate the exactly working time, we must add the "pending" status: [[Image(ticket_flow_chart2.PNG)]] Although standard process is `O --> As --> A --> C --> R --> A --> C`, but there are still some tickets do not follow the rule. * line1 = t1 * line2 = t2 * line3 = t3 + t4 + t5 * line4 = t3 + t4 + t6 * line5 = t3 + t4 + t7 == Bugs/Feature Requests Existing bugs and feature requests for AgiloTicketReportPlugin are [report:9?COMPONENT=AgiloTicketReportPlugin here]. If you have any issues, create a [/newticket?component=AgiloTicketReportPlugin new ticket]. [[TicketQuery(component=AgiloTicketReportPlugin&group=type,format=progress)]] == Download Download the zipped source from [download:agiloticketreportplugin here]. == Source You can check out AgiloTicketReportPlugin from [http://trac-hacks.org/svn/agiloticketreportplugin here] using Subversion, or [source:agiloticketreportplugin browse the source] with Trac. == Installation 1. Download latest [http://sourceforge.net/projects/pyexcelerator/ pyExcelerator library] and install it. pyExcelerator is an open source Python excel library. 2. Configure TicketReport\AgiloTicketReport\ticketreport.py line 35 if you use single project # just left PROJECT_NAME_PREFIX empty PROJECT_NAME_PREFIX = "" else # use multiple projects for example: # http://[ip]:[port]/projects/[PROJECT_NAME] PROJECT_NAME_PREFIX = "projects" 3. Working time time set up (optional) TicketReport\AgiloTicketReport\gethours.py line 12 start time and end time of working day, and holiday configuration trac.ini: {{{#!ini [ticket-workflow] + pending = new,assigned,accepted,reopened -> pending + pending.permissions = TICKET_MODIFY - resolve = new,assigned,accepted,reopened -> closed - accept = new,assigned,accepted,reopened -> accepted + resolve = new,assigned,accepted,reopened,pending -> closed + accept = new,assigned,accepted,reopened,pending -> accepted }}} == Example '''Web UI''': [[Image(ticket_report.PNG)]] '''Generated Excel Report''': [[Image(ticket_report_r16_01.PNG)]] == Recent Changes [[ChangeLog(agiloticketreportplugin, 3)]] == Author/Contributors '''Author:''' [wiki:todjiang] [[BR]] '''Maintainer:''' ''none'' [[BR]] '''Contributors:'''