Files
vesti/openspec/changes/candidates-buttons-order/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.9 KiB
Raw Blame History

Why

В прошлой сессии кнопку «Опубликовать» перенесли в approve-форму (вместе с полем комментария). В результате в правой панели деталей кандидата кнопки «Обработать моделью», «Переписать», «Отклонить» оказались ПОСЛЕ блока комментария отдельным flex-рядом — визуально «съехали» и разорвали основной ряд действий.

Пользователь: действия модератора должны быть над полем комментария, в одном ряду с «Опубликовать».

What Changes

  • В web/templates/candidates.html, правая панель выбранного поста:
    • Перенести кнопки «🤖 Обработать моделью», «✍️ Переписать», «🚫 Отклонить» из отдельного flex-ряда ПОСЛЕ approve-формы в ОДИН ряд с кнопкой «✅ Опубликовать» — НАД полем комментария.
  • Итоговая структура блока действий (когда пост не опубликован/не отклонён):
[✅ Опубликовать] [🤖 Обработать моделью] [✍️ Переписать] [🚫 Отклонить]
💬 Мой комментарий (будет первым в канале):
[textarea комментария]
[💾 Сохранить комментарий]
  • Логика видимости кнопок не меняется:
    • «Опубликовать» — статус != published;
    • «Обработать моделью», «Переписать» — статус != published;
    • «Отклонить» — статус != rejected и != published.

Why Not

  • Не объединять все кнопки в одну approve-форму: «Сохранить комментарий» использует отдельный эндпоинт (/posts/{id}/comment), а «Обработать моделью»/«Переписать»/«Отклонить» — свои POST-эндпоинты; в одну форму их не собрать без JS (а htmx/JS-сложная логика в проекте запрещены).
  • Оставлять текущий порядок нельзя — кнопки визуально разорваны.

Impact

  • Файл: web/templates/candidates.html (правка только разметки, без JS и эндпоинтов).
  • Данные: без изменений.
  • Сервис: vesti-web (:8400) — нужен перезапуск (Jinja2-кеш без --reload).
  • Rollback: вернуть разметку и перезапустить сервис.