воскресенье, 28 марта 2010 г.

TBPD: HelpDesk

Так, с наворотами в HelpDesk в виде цепочки задач я немного психанул...
* там нет много задач. Там одна задача. Которую надо как-то порешать.
* состояния открыто/закрыто - мало. Схема new-accepted-done-submited - лучше. Это тоже, что и Opened/Close, но используя простейшее квитирование (подтверждение приема). Open/Close годится для Google Task - когда сам себе автор и исполнитель. Где участвует двое - там нужно подтверждение, что до человека дошло.
* Другой вопрос - ведение журнала изменения состояния задачи. Это - да, вещь. Пока можно ограничиться заливкой в журнал Django - с каментами - что произошло.
Итого - схема такая:
* Задача - одна.
* Состояний - 4 (New, Accepted, Completed, Approved) - отдельная модель.
* Переходов - 8:
** Create ( None => New)
** Route ( New/Accepted => New )
** Invalid/Duplicated ( New => Completed )
** Accept ( New => Accepted )
** MkDep ( Accepted => Accepted ) - родить подзадачу / зацепиться за существующую
** Done ( Accepted => Completed )
** ReOpen ( Completed/Approved => New )
** Approve ( Completed => Approved )
* Форм - 2 (список (с фильтром) / задача (с историей))
* ведется журнал в системном журнале Django:
** объект - эта задача
** время - автомат
** user - понятно
** каменты: действие (переход из - в), каменты (юзеровские)


ЗЫ: Не, нифига. Сливать задачу Из New в Invalid - не надо. Человек нажаль педаль Просмотреть на задаче - всё, он её прочитал - значит - Принял (Accept). А потом уже пусть делает с ней всё, что хочет - перенаправляет, сливает, жалуется - пофик. Он её _прочитал_ => принял к сведению. Типа подтверждения прочтения. Чтобы вариантов "а я еще не заглядывал в список - компьютер не работал" не было.

1 комментарий:

TI_Eugene комментирует...

Даже не так. 4 состояния заменим на 2 флага - Read (читал) и Done (завершено). Меньше заморочек и проще фильтровать.