Commit Graph

3 Commits

Author SHA1 Message Date
kpa39l 60617de0cb candidates: фикс смены группировки (422 при сабмите bulk-формы)
- Группировка вынесена из onchange-сабмита bulk-формы в GET-ссылки
  (/candidates?group_by=...&filters...&selected=...)
- Чекбоксы bulk привязаны к форме атрибутом form='bulk-form' (без JS,
  HTML5) — устранены вложенные формы (невалидный HTML)
- Выбор поста — ссылкой GET (selected=id) вместо POST /candidates/select
- app.py: добавлен filters_qs (query-string фильтров для ссылок),
  импорт urllib.parse.quote; /candidates/select оставлен для обратной
  совместимости (сабмит старых форм)
- Тест: смена группировки, bulk reject, выбор поста, фильтры — зелёные
2026-09-13 20:57:48 +00:00
kpa39l fc6d725bd1 candidates-mail-ui: двухпанельный интерфейс кандидатов (почтовый клиент)
- БД: posts.comment TEXT, posts.rewritten_text TEXT (ALTER TABLE, миграция применена)
- GET /candidates: двухпанельный рендер — слева список с группировкой
  (source/date/status, свертываемые <details>) + чекбоксы bulk,
  справа детали поста (действия, комментарий, пересказ, оригинал с медиа)
- Роуты: POST /candidates/select, /candidates/bulk (approve/reject/reject-old),
  /posts/{id}/comment, /posts/{id}/reclassify (qwen), /posts/{id}/rewrite (qwen)
- approve вынесен в impl_approve (переиспользуется bulk-approve: publisher + бандл)
- без JS (только формы); HTML: Jinja2 + Bootstrap 5.3
- Протестировано TestClient: группировка, bulk-reject, comment, reclassify
  (реальный qwen), rewrite (реальный qwen), поиск, media, published — зелёные
- openspec: change candidates-mail-ui архивирован (2026-09-13-candidates-mail-ui),
  spec влита в openspec/specs/candidates-mail-ui; validate — чисто
- docs: STATUS.md, WALKTHROUGH.md обновлены
2026-09-13 20:53:53 +00:00
kpa39l c3f59f7b7a Initial import: vesti.nixg.ru — новостной апрув-проект (web, crawler, classifier, publisher, openspec) 2026-09-13 15:58:32 +00:00