Time Tracking. Автоматический пересчёт "Estimate field".
Answered
Добрый день.
Я в своём проекте настроил Time Tracking для того, чтобы в родительской задаче поле "Estimate field" автоматически пересчитывалось и было равно сумме "Estimate field" подчинённых задач.
Но, если у меня несколько подзадач, и при этом я вручную изменю "Estimate field" в родительской задаче, то автоматический перерасчёт перестаёт работать.
Как можно это исправить? Пробовал написать workflow, который не разрешает редактировать "Estimate field" если задача родительская, но вместе с этим условием в подчинённых задачах тоже невозможно редактирование этого поля.
мой workflow
when {
for each subtask in parent for {
if (Estimation.changed && subtask.Estimation.changed == false) {
Estimation = Estimation.oldValue;
}
}
}
Please sign in to leave a comment.
Данный воркфлоу позволит изменить Estimation родительской задачи только в том случае, если во всех дочерних задачах одновременно изменилось это поле (что происходит крайне редко). Для того, чтобы запрещать изменения родителького значения поля, если ни одно дочернее не изменилось, можно использовать следующее правило:
when issue.Estimation.changed && issue.subtask of.isEmpty {
var subtaskIsChanged = false;
for subtask in issue.parent for {
subtaskIsChanged = subtaskIsChanged || subtask.Estimation.changed;
}
// If at least one subtask has a modified Estimation,
// subtaskIsChanged will be equal to true at this point
assert subtaskIsChanged: "You can't change parent Estimation manually!";
}
Огромное спасибо за ответ!
Но небольшая поправочка :) В начальном условии issue.subtask of.isEmpty нужно заменить на issue.parent for.isNotEmpty