Удобный виджет выбора даты и времени тут не поможет, тем более в айтопе уже и так есть аналогичный виджет (хотя и не такой красивый).
Задача делится на две:
- показать поле Дата решения (я так понял, его хотите заполнять руками) на форме перевода в Решенный;
- отключить автоматическое заполнение поля датой фактического перевода в Решен.
Для решения потребуется минимальная доработка XML-модели (разумеется, в собственном отдельном модуле, а не в исходном datamodel-файле).
Первый пункт решается переопределением (_delta="redefine"
) флагов для атрибута resolution_date
в статусе resolved
. Изначально там только read_only
, нужно добавить must_prompt
и mandatory
. Путь до переопределяемого узла: itop_design>classes>class#UserRequest>lifecycle>states>state#resolved>flags>attribute#resolution_date
.
<attribute id="resolution_date" _delta="redefine">
<mandatory/>
<must_prompt/>
<read_only/>
</attribute>
Для решения второго пункта нужно удалить из списка действий перехода ev_resolve
статуса assigned
действие SetCurrentDate
.
Но у узлов
action
не заданы id, поэтому удалить (_delta="delete"
) конкретный узел нельзя. Придется переопределять весь узел actions
, оставив там только нужные action
. Путь до переопределяемого узла: itop_design>classes>class#UserRequest>lifecycle>states>state#assigned>transitions>transition#ev_resolve>actions
.
Поле resolution_date
продолжит заполняться текущей датой при автоматическом решении тикета (ev_autoresolve
), которое срабатывает для дочерних при решении родительского. Подумайте, может имеет смысл добавить отдельное поле для указания нужный даты, оставив заполнение resolution_date
автоматическим.