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;
}
}
}
2 comments
Comment actions Permalink
Official 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!";

    }

 

Comment actions Permalink

Огромное спасибо за ответ! 

Но небольшая поправочка :) В начальном условии issue.subtask of.isEmpty нужно заменить на  issue.parent for.isNotEmpty

0

Please sign in to leave a comment.