Files
vesti/openspec/changes/archive/2026-09-16-reject-stay-candidates/design.md
T

1.8 KiB
Raw Blame History

Design

Файл: /opt/vesti/web/app.py.

1. reject() — строка 582

Сейчас:

return RedirectResponse(url=_cand_back(group_by, direction, own, q, status="rejected"), status_code=302)

Стало:

return RedirectResponse(url=_cand_back(group_by, direction, own, q), status_code=302)

_cand_back без status строит /candidates с сохранением group_by/direction/own/q — очереди кандидатов (status=new по умолчанию).

2. candidates_bulk() — строки 345, 358

Сейчас:

if action == "reject":
    ...
    return RedirectResponse(url=back + "&status=rejected", status_code=302)
...
if action == "reject-old":
    ...
    return RedirectResponse(url=back + "&status=rejected", status_code=302)

Стало: редирект на back (уже содержит group_by + фильтры), без &status=rejected.

if action == "reject":
    ...
    return RedirectResponse(url=back, status_code=302)
...
if action == "reject-old":
    ...
    return RedirectResponse(url=back, status_code=302)

Верификация

  • openspec validate reject-stay-candidates — чисто.
  • Юнит (TestClient): login → POST /posts/{id}/reject с group_by=date → ожидаем Location: /candidates?group_by=date (БЕЗ status=rejected).
  • Перезапуск: sudo systemctl restart vesti-web.
  • Ручная проверка: отклонить пост из правой панели → остаёмся на «Кандидатах» в той же группировке, пост пропал из списка; список отклонённых доступен через фильтр «🗑 Отклонённые».