mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
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 обновлены
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# tasks.md — candidates-mail-ui
|
||||
|
||||
## Proposal
|
||||
- [x] proposal.md — двухпанельный интерфейс кандидатов (почтовый клиент), группировка, bulk
|
||||
- [x] design.md — архитектура (роуты, БД, шаблоны, минимум JS)
|
||||
|
||||
## Implement
|
||||
- [x] Проверить схему posts (status, поля) — уточнить, какие статусы есть (new/rejected/published)
|
||||
- [x] Миграция: `ALTER TABLE posts ADD COLUMN comment TEXT` + `rewritten_text TEXT` (сделано в БД)
|
||||
- [x] GET /candidates — двухпанельный рендер (левая колонка список+группировка, правая — детально)
|
||||
- [x] Левая панель: группировка по source/date/status (сворачиваемые <details>), чекбоксы
|
||||
- [x] POST /candidates/bulk — approve/reject/reject-old по ids[] (транзакция)
|
||||
- [x] POST /posts/{id}/comment — сохранить комментарий (comment TEXT)
|
||||
- [x] POST /posts/{id}/reclassify — перезапуск классификатора на посте (реальный qwen, протестирован)
|
||||
- [x] POST /posts/{id}/rewrite — LLM-пересказ (qwen), возврат черновика для редактирования (реальный qwen, протестирован)
|
||||
- [x] Правая панель: меню действий, блок комментария, оригинальный пост со всеми медиа
|
||||
- [x] Шаблоны: candidates.html (двухколоночная), формы новых действий
|
||||
- [x] Тест: группировка, bulk-отклонение, коммент, реклассификация, rewrite, поиск (TestClient, все зелёные)
|
||||
- [x] `openspec validate candidates-mail-ui` — чисто
|
||||
- [x] Обновить STATUS.md / WALKTHROUGH.md
|
||||
@@ -1,20 +0,0 @@
|
||||
# tasks.md — candidates-mail-ui
|
||||
|
||||
## Proposal
|
||||
- [x] proposal.md — двухпанельный интерфейс кандидатов (почтовый клиент), группировка, bulk
|
||||
- [x] design.md — архитектура (роуты, БД, шаблоны, минимум JS)
|
||||
|
||||
## Implement
|
||||
- [ ] Проверить схему posts (status, поля) — уточнить, какие статусы есть
|
||||
- [ ] Миграция: `ALTER TABLE posts ADD COLUMN comment TEXT` (или таблица comments)
|
||||
- [ ] GET /candidates — двухпанельный рендер (левая колонка список+группировка, правая — детально)
|
||||
- [ ] Левая панель: группировка по source/date/status (сворачиваемые <details>), чекбоксы
|
||||
- [ ] POST /candidates/bulk — approve/reject по ids[] (транзакция)
|
||||
- [ ] POST /posts/{id}/comment — сохранить комментарий (comment TEXT)
|
||||
- [ ] POST /posts/{id}/reclassify — перезапуск классификатора на посте
|
||||
- [ ] POST /posts/{id}/rewrite — LLM-пересказ (qwen), возврат черновика для редактирования
|
||||
- [ ] Правая панель: меню действий, блок комментария, оригинальный пост со всеми медиа
|
||||
- [ ] Шаблоны: candidates.html (двухколоночная), формы новых действий
|
||||
- [ ] Тест: создание 2-3 тестовых постов, группировка, bulk-отклонение, коммент, реклассификация
|
||||
- [ ] `openspec validate candidates-mail-ui` — чисто
|
||||
- [ ] Обновить STATUS.md / WALKTHROUGH.md
|
||||
Reference in New Issue
Block a user