How to use trac for assignments and tasks
I work in a company providing technical assistance and this our common work-flow: the guys in the call center or in the shop catch the customer request for assistance and, for every request, they open an assignment. After that the technicians work on the assignment and they append many tasks to the assignment. Once the assignment is declared closed and it's approved by the administration, then it goes to the accounting department which mak开发者_如何学Ces the invoice for the assignment (almost automatically).
To make it short: assignment = problem, task=action taken to solve the problem
assignment (opened by call center)
|_______ task1 (technician A) |_______ task2 (technician B) |_______ task3 (technician C) ... |_______ taskX (technician A)A task has mainly these attributes:
- description - technician name - hours spent - kilometers spentWe have generally ~1500 assignments and ~5000 tasks per year.
Right now all these processes are handled by a customized application we made over the time. I'm wondering if we can improve our company application by using and integrating Trac (which is already used by the development department to handle internal stuff), which has some interesting ready-to-go features like xml-rpc and work-flow.
Now the big deals:
1) due to the number of assignments I can't bind an assignment to a trac project. 2) If I bind each assignment to a trac ticket then tasks should be bind to trac ticket comments but they lack the possibility to add hours and kilometers spent. 3) It seems that there is no plugin to customize comments How I tried to solve them: a) I tried to customize the comment with this plugin: it works quite well but I can't get back a good data structure when I query trac via xml-rpc from the company application and it's not clear how much time has been spent per every "comment". Plus there is no way to add kilometers b) I found the Trac Remote Plugin and it seems to be interesting because I could create two trac projects, one for the assignments and one for the tasks and then bind tasks to the assignment using the intratrac link. Pity it's not working for me.Do you think that trac is a good choice? Do you see any other way I can use it? Is there any other tracking system (for linux) which better fits our needs?
You should be able to do this with Trac if you approach the problem from a slightly different angle.
Instead of treating Assignments and Tasks as different things, let both of them be represented by a ticket. Each ticket has a customizable "Type" field. You can make "Assignment" and "Task" two options for this field. This should allow you to keep Assignments and Tasks in the same Trac instance while still being able to differentiate between them and query each group separately. If you wanted to, you could even add some custom Javascript/CSS that displays the "View Ticket" page slightly differently for Assignments and Tasks (for instance, if you wanted to change the colors slightly to provide additional visual cues).
The tricky part is taking the different tickets that make up an Assignment and the related Tasks and making sure that they are all associated with each other properly. Thankfully, there's a plugin that can help you do just that. Grab the Trac-MasterTickets plugin. This will add two fields to your tickets, named "blocks" and "blocked by" by default. These are used to express ticket dependencies. If you create (for example) ticket #8 and list "#4" in the "blocked by" field, you are indicating that ticket #4 must be completed before #8 can be completed. When you do this, Trac automatically updates ticket #4 and lists #8 in the "blocks" field. Now you have a cross-referenced relationship between two tickets that indicates a dependency. This should be what you need to associate Assignments and Tasks. You can change the names of these fields to something like "Sub-Tasks" and "Parent Assignment". When you create a new Task, you can indicate the Assignment that it belongs to and Trac will cross-reference them automatically. You could even use the DynamicFieldsPlugin to only show the "Sub-Tasks" field on tickets of type "Assignment" and only show the "Parent Assignment" field on tickets of type "Task".
精彩评论