О платформе Войти
← К списку версий
v0.95.0 06.10.2026 MINOR
Дедлайн проекта и задачи со сроками на странице проекта
Дедлайн проекта был завязан только на активную подписку: у проектов без подписки карточка «Дедлайн» показывала «—», хотя срок завершения у проекта есть. У проекта появилось собственное поле deadline (планируемая дата завершения) с отдельным полем в редактировании; на странице проекта показывается оно, а если пусто — дедлайн из подписки с пометкой «по договору». Заодно задачи на странице проекта превращены из списка с процентами в карточки: поставлена дата и время, крайний срок, дата выполнения, описание, прогресс (с платформы задач, иначе доля выполненных шагов) и шаги с отметками «сделано / не сделано». Выполненная задача никогда не считается просроченной и всегда показывается на 100% со всеми шагами отмеченными; шаги идут вертикальным списком с номерами. Версия v0.95.0.
Что сделано
  • Свой дедлайн проекта - В редактировании проекта появилось поле «Дедлайн проекта» (планируемая дата завершения), отдельное от подписки. На странице проекта карточка «Дедлайн» показывает его, а если поле пусто — дедлайн из активной подписки с пометкой «по договору».
  • Задачи — карточки со сроками - У каждой задачи на странице проекта видно: когда поставлена («Поставлена: дд.мм.гггг чч:мм» — дата начала с платформы задач, иначе дата появления в MY IPD), крайний срок (просроченные подсвечены и подписаны «просрочена»), дату выполнения, полное описание, прогресс (процент с платформы задач через meta.remote_progress, иначе доля выполненных шагов) и шаги с отметками «сделано / не сделано».
  • Ссылка на полную карточку - Название задачи в карточке ведёт на страницу задачи (admin.projects.tasks.show) и оформлено как ссылка по правилу ТЗ 280: color: var(--link) + text-decoration: underline.
  • Выполненная задача не бывает просроченной - Если задача выполнена (статус или completed_at), даже при сроке в прошлом «Крайний срок» выводится спокойным цветом как справочная дата, пометка «просрочена» остаётся только у незавершённых. Прогресс выполненной задачи всегда 100%, все шаги отмечены — даже если на платформе шаги не проставлены (задача пришла уже выполненной).
  • Шаги — вертикальный список - Список шагов в карточке переведён из нескольких колонок в один столбец с нумерацией: декомпозицию легче читать. Выполненные шаги — зелёная галочка и зачёркнутый текст.
  • Дата «Выполнена» - Берётся из completed_at; если его нет (задача импортирована уже выполненной) — из истории переходов статусов (TaskStatusChange) по to_status = completed, когда она есть.
Проверено
  • Тесты - tests/Feature/TasksReadOnlyTest.php: добавлены 3 теста — богатая карточка задачи (даты поставлена/срок/выполнена, описание; выполненная задача — 100%, все шаги отмечены и не считается просроченной: «просрочена» на странице ровно одна; активная — «80% — 1 из 2 шагов»), дедлайн проекта и запасной из подписки с пометкой «по договору», сохранение дедлайна из формы редактирования. Полный прогон платформы: 448 тестов, 447 пройдено, 1 условно пропущенный.
  • Версия платформы - Поднята до v0.95.0: config/app.php, APP_VERSION в .env и .env.example; VersionSeeder — v0.95.0 актуальная. VersionFeatureTest и SeederKeepsWorkingDataCleanTest проходят.
  • Регрессия ссылок - TextLinkVisibilityTest (ТЗ 280) проходит: новая ссылка-заголовок задачи в карточке не нарушает правило «ссылка в тексте синяя и подчёркнутая».
Результат
  • У проекта есть свой дедлайн — планируемая дата завершения, запасной вариант из подписки помечен «по договору». Задачи проекта показывают даты поставки и сроки, прогресс, описание и список шагов со сделанным и несделанным; выполненная задача не выглядит просроченной и всегда показывается сделанной на 100%.