Session 2026-09-13: unify directions (canon+LLM-fallback, 966/1019), publisher dry_run fix, git repo, archive 8 changes, candidates-mail-ui WIP, docs

This commit is contained in:
kpa39l
2026-09-13 17:48:06 +00:00
parent c3f59f7b7a
commit 71fd48aa06
40 changed files with 305 additions and 7 deletions
@@ -0,0 +1,27 @@
## Дизайн
### 1. Убрать HTMX (unpkg.com)
`web/templates/candidates.html`:
- Строки 50-65: `<form class="d-inline" method="post" action="/posts/{{ p.id }}/approve" hx-post=... hx-target=... hx-swap=...>` →
`<form class="d-inline" method="post" action="/posts/{{ p.id }}/approve">`. Кнопка остаётся `type="submit"`.
- Строка 66: `<button ... hx-post="/posts/{{ p.id }}/reject" hx-target="..." hx-swap="outerHTML">` →
обернуть в `<form class="d-inline" method="post" action="/posts/{{ p.id }}/reject">` + `<button type="submit">`.
- Убрать все `hx-*` атрибуты по проекту.
### 2. Локализовать Bootstrap
- Скачать: `curl -sL https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css -o web/static/bootstrap.min.css`
- В `base.html` и `login.html` заменить `<link href="https://cdn.jsdelivr.net/...">` →
`<link href="/static/bootstrap.min.css" rel="stylesheet">`.
- FastAPI уже монтирует `/static` (app.mount в web/app.py:27) — STATIC_DIR существует
(`web/static/`), сейчас пустой.
### 3. Проверка
- `grep -rn "unpkg\|jsdelivr\|cdn\." web/` → пусто.
- `curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8400/login` → 200.
- Страница рендерится с локальным CSS (визуально не отличается).
- Approve/reject работают POST-формами (редирект на /published / /candidates?status=rejected).
- network-панель браузера: нет запросов к unpkg.com/jsdelivr.net.