Files
vesti/openspec/changes/reject-stay-candidates/proposal.md
T
kpa39l 562d787f1b fix(candidates): после Отклонить остаёмся на кандидатах, кнопки действий над комментарием
- reject/reject-old (single + bulk): редирект на /candidates с текущей
  группировкой вместо /candidates?status=rejected — не прерываем отбор.
  Отклонённые доступны через фильтр статуса.
- candidates.html: Обработать/Переписать/Отклонить — один ряд над полем
  комментария (после переноса Опубликовать в approve-форму кнопки съехали).

changes: candidates-buttons-order, reject-stay-candidates (skip_specs, валидны).
2026-09-15 16:30:19 +00:00

2.2 KiB

Why

После нажатия «🚫 Отклонить» в правой панели кандидата пользователь попадает на страницу /candidates?status=rejected (отдельный список отклонённых), а не остаётся в текущем списке кандидатов. Это разрывает поток отбора: после отклонения одного поста нужно вернуться в очередь кандидатов и продолжить.

Same для массового отклонения через bulk-форму (левая панель, «🚫 Отклонить» / «🗑 Старьё»): редирект уводит на status=rejected.

What Changes

  • web/app.py, reject() (POST /posts/{id}/reject): редирект после отклонения — на /candidates с сохранением текущей группировки и фильтров, БЕЗ status=rejected (чтобы остаться в очереди кандидатов). Т.е. _cand_back(group_by, direction, own, q) без status.
  • web/app.py, candidates_bulk(): для action == "reject" и action == "reject-old" — редирект на back (текущая группировка + фильтры) БЕЗ &status=rejected.

Текущее поведение (reject → список отклонённых) доступно вручную через фильтр статуса «🗑 Отклонённые» или ?status=rejected.

Why Not

  • Не менять approve: после публикации переход на опубликованные — осознанное поведение (посмотреть результат), менять не просили.
  • Не добавлять параметр «куда вернуться»: редирект на текущую группировку достаточен и предсказуем.

Impact

  • Файл: web/app.py (две точки редиректа).
  • Данные: без изменений.
  • Сервис: vesti-web (:8400) — перезапуск.
  • Rollback: вернуть status="rejected" в редиректах и перезапустить.