Этап
Готова
Тип
Ошибка
Приоритет
Повышенный
Трудоемкость
Обычная
Создана
Дата создания
2 года назад
Назначена
Обновлена
2 года назад

Сейчас у нас дата проекта обновляется всегда, даже если мы прокоментировали закрытую задачу, (хотя дата самой задачи при этом не меняется). Получается каждый листенер сам решает, проверять ли закрытость задачи. С одной стороны хорошо, наверняка какому-нибудь листенеру будет не важно закрыта ли задача. С другой стороны плохо, раз мы постоянно забываем это проверять, а при проверке копируем логику.

А некоторые листенеры вобще вешаются на гору евентов разных сущностей, и им проверить это вобще будет затруднительно. **(кстати активность из tndt-11 тоже будет генерится когда задача закрыта, или когда её меняет root, что не факт, что плохо, но следует учесть при дальнейшем подсчете).

Варианты решения:

Доменные сервисы просто не генерят события бизнес-действий если действие совершает root либо действие совершается над закрытой задачей(архивным документом). Минус в том, что какие-то листенеры должны будут срабатывать и в этом случае.

В событие добавляется информация о том считается ли объект завершившим жизненный цикл и более не нуждающемся в обновлении даты (что-то общее, вроде LifeFinished, а задачи и документы сами будут решать как его реализовать. Это хороший вариант, и каждый листенер будет сам решать как это обрабатывать. проект будет не обновлять свою дату, а активность может все равно отметится, но сохранив этот флаг.

Кстати заодно в событие можно записывать актора. Так листенеры смогут не зависеть от security, и если мы захотим сделать какое-нибудь бизнес действие отделенным от реквеста, это будет сделать проще.

Панель управления