fix(candidates): сохранять группировку после действий, чинить пустой ?status=rejected

- _fetch_candidates: жёсткое status='new' только при пустом status; явный
  статус (rejected/published) — единственный фильтр статуса → ?status=rejected
  больше не даёт пустой список
- формы approve/reclassify/rewrite/reject/comment: скрытые поля
  group_by/direction/own/q — контекст страницы
- POST-роуты: редирект через _cand_back() сохраняет группировку и фильтры
  (reject → ?status=rejected&group_by=...; approve → ?status=published&...)
This commit is contained in:
kpa39l
2026-09-14 05:47:30 +00:00
parent acb49cc702
commit 0999424baa
8 changed files with 205 additions and 21 deletions
+6
View File
@@ -138,23 +138,28 @@
</div>
<div class="mb-3 d-flex flex-wrap gap-2">
{% set hid %}<input type="hidden" name="group_by" value="{{ group_by }}"><input type="hidden" name="direction" value="{{ direction }}"><input type="hidden" name="own" value="{{ own }}"><input type="hidden" name="q" value="{{ q }}">{% endset %}
{% if selected.status != 'published' %}
<form method="post" action="/posts/{{ selected.id }}/approve">
{{ hid }}
<button class="btn btn-success" type="submit">✅ Опубликовать</button>
</form>
{% endif %}
{% if selected.status != 'published' %}
<form method="post" action="/posts/{{ selected.id }}/reclassify">
{{ hid }}
<button class="btn btn-info" type="submit">🤖 Обработать моделью</button>
</form>
{% endif %}
{% if selected.status != 'published' %}
<form method="post" action="/posts/{{ selected.id }}/rewrite">
{{ hid }}
<button class="btn btn-outline-primary" type="submit">✍️ Переписать</button>
</form>
{% endif %}
{% if selected.status != 'rejected' and selected.status != 'published' %}
<form method="post" action="/posts/{{ selected.id }}/reject">
{{ hid }}
<button class="btn btn-outline-danger" type="submit">🚫 Отклонить</button>
</form>
{% endif %}
@@ -162,6 +167,7 @@
<div class="mb-3">
<form method="post" action="/posts/{{ selected.id }}/comment">
{{ hid }}
<label class="form-label small text-muted">💬 Мой комментарий (будет первым в канале):</label>
<textarea class="form-control form-control-sm" name="comment" rows="2"
placeholder="Комментарий/анонс…">{{ selected.comment or '' }}</textarea>