From 2b5dc379e165b9aa4ba0386ef8ed3c698031c4b5 Mon Sep 17 00:00:00 2001 From: Aleksey Razorvin <> Date: Sat, 21 Mar 2026 13:22:24 +0500 Subject: [PATCH] =?UTF-8?q?docs:=20reorder=20sprints=20=E2=80=94=20editing?= =?UTF-8?q?+versioning=20moves=20to=20Sprint=203,=20tracker=20to=20Sprint?= =?UTF-8?q?=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- DOC/СПРИНТЫ.md | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/DOC/СПРИНТЫ.md b/DOC/СПРИНТЫ.md index 3a4b089..c78bf5d 100644 --- a/DOC/СПРИНТЫ.md +++ b/DOC/СПРИНТЫ.md @@ -74,19 +74,37 @@ --- -## Спринт 3 — Трекер результатов +## Спринт 3 — Редактирование теста + версионность + +**Результат:** Тест можно редактировать. Если тест уже проходили — создаётся новая версия, старая сохраняется для истории. + +### Backend +- [ ] Миграция `003`: добавить поле `parent_id` в таблицу `tests` (ссылка на предыдущую версию) +- [ ] `PUT /api/tests/{id}` — редактировать тест: + - Нет попыток → обновить на месте + - Есть попытки → создать новый тест (`version + 1`, `parent_id = id`), вернуть `{test, is_new_version: true}` +- [ ] `GET /api/tests` — показывать только последние версии (у которых нет «потомка») + +### Frontend +- [ ] Активировать кнопку «Редактировать» на странице `/tests/:id/edit` +- [ ] Форма редактирования теста с предзаполненными данными +- [ ] При сохранении с созданием новой версии — редирект на новый тест + уведомление + +--- + +## Спринт 4 — Трекер результатов **Результат:** Таблица всех попыток прохождения тестов. - [ ] API: `GET /api/attempts` — все попытки (с фильтрами по тесту, дате) - [ ] Фронт: страница трекера - - Таблица: сотрудник, тест, № попытки, начало, завершение, результат, зачёт + - Таблица: тест, версия, дата начала, дата завершения, результат, зачёт - Фильтрация по тесту и дате - Пагинация --- -## Спринт 4 — Авторизация и управление пользователями +## Спринт 5 — Авторизация и управление пользователями **Результат:** Вход по логину/паролю, роли ограничивают доступ. Можно создавать сотрудников и подразделения. @@ -101,11 +119,11 @@ ### Роли и права -| Роль | Тесты | Назначение | Трекер | -|------|-------|-----------|--------| -| HR-менеджер / Директор | Создаёт, все тесты | Всем сотрудникам | Вся клиника | -| Руководитель подразделения | Создаёт, свои тесты | Только своему отделу | Только свой отдел | -| Сотрудник | Только назначенные | — | Только свои | +| Роль | Тесты | Трекер | +|------|-------|--------| +| HR-менеджер / Директор | Создаёт и редактирует все тесты | Вся клиника | +| Руководитель подразделения | Создаёт и редактирует свои тесты | Только свой отдел | +| Сотрудник | Проходит назначенные тесты | Только свои результаты | ### Управление пользователями - [ ] API: CRUD подразделений @@ -119,13 +137,9 @@ - [ ] Фронт: форма назначения теста - [ ] Фронт: дашборд сотрудника — список назначенных тестов со статусами (`Не начат`, `В процессе`, `Завершён`, `Просрочен`) -### Версионирование тестов -- [ ] При попытке редактировать назначенный тест — создаётся новая версия -- [ ] Результаты привязаны к конкретной версии теста - --- -## Спринт 5 — Уведомления в MAX +## Спринт 6 — Уведомления в MAX **Результат:** Сотрудники получают уведомления в мессенджер MAX.