rossp/django-helpdesk — Issue #79: idea for staff progress tracking of tickets
Author: kotowicz
Created: 2011-11-08 10:20:59+00:00
State: open

In the current version of django-helpdesk we have five different statuses that we can choose from:

```
STATUS_CHOICES = (
(OPEN_STATUS, _('Open')),
(REOPENED_STATUS, _('Reopened')),
(RESOLVED_STATUS, _('Resolved')),
(CLOSED_STATUS, _('Closed')),
(DUPLICATE_STATUS, _('Duplicate')),
)
```
This is a reasonable choice because the state of a ticket is well defined.
What's missing in my eyes is a status called `work in progress` which let's the client know that someone is working on the issue (there's nothing worse than not knowing whether someone is actually working on resolving the issue or not). This additional status might not be necessary for some helpdesk applications but it could open up the following possibilities:

I like the idea of being able to track the status of a ticket internally (for staff users). Obviously you don't want to spam the client with any technical details but I find it cumbersome to install a separate bug tracking system for staff and then have to go back and forth between the two bug tracking systems. I think we could merge this functionality into django-helpdesk so that each ticket can be seen from two sides: the client side and the staff side. The client only sees the five or six different statuses (see above), staff users however can pick between more fine grained statuses: `work in progress` could be forked into `found issue`, `wrote patch`, `needs testing`, `tested`, `ready to ship`, to accommodate any possible workflow.

Regarding the implementation, I'm not sure how to do this. We could introduce a new status called `work in progress` and create a new model which holds the individual sub-steps for `work in progress`. If the database contains no entries for this model, then staff users only see the normal `work in progress` in the ticket update view. If however the database does contain some entries, we render these sub-steps in the given order and staff can select them.

Obviously much more could be done - this is just the basic idea I have right now. Waiting for feedback.