fix(candidates): после Отклонить остаёмся на кандидатах, кнопки действий над комментарием

- reject/reject-old (single + bulk): редирект на /candidates с текущей
  группировкой вместо /candidates?status=rejected — не прерываем отбор.
  Отклонённые доступны через фильтр статуса.
- candidates.html: Обработать/Переписать/Отклонить — один ряд над полем
  комментария (после переноса Опубликовать в approve-форму кнопки съехали).

changes: candidates-buttons-order, reject-stay-candidates (skip_specs, валидны).
This commit is contained in:
kpa39l
2026-09-15 16:30:19 +00:00
parent ee2f8ac61a
commit 562d787f1b
11 changed files with 551 additions and 29 deletions
@@ -0,0 +1,11 @@
# reject-stay-candidates
- [x] Создан OpenSpec change (proposal/design) — `skip_specs: true`
- [x] `openspec validate reject-stay-candidates` — чисто
- [x] web/app.py `reject()`: редирект на `/candidates` без `status=rejected`
- [x] web/app.py `candidates_bulk()`: reject/reject-old → `back` без `status=rejected`
- [x] Тест (TestClient): Location после reject содержит group_by, не содержит `status=rejected`
- [x] Перезапуск `sudo systemctl restart vesti-web`
- [x] Ручная проверка: после отклонения остаёмся на кандидатах (живой URL `/candidates?group_by=date`)
- [x] Обновить STATUS.md / TODO.md
- [x] Бэкап (крон 2:45 делает сам, вручную НЕ запускать)