## 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"` в редиректах и перезапустить.