fix(web): статус группы при группировке по дате + published-страница

- _fetch_candidates: статус группы = доминирующий (new>rejected>published),
  а не первого поста → при group_by=date группа «Ранее на этой неделе»
  больше не выглядит опубликованной (openchange fix-date-group-status)
- base.html: padding-top 1.5rem→4.5rem — заголовок не перекрывается fixed-top меню
- published.html: ID поста на карточках (#N · направление)
- AGENT.MD: бэкапы автоматические по крону, вручную не запускать
This commit is contained in:
kpa39l
2026-09-14 04:39:08 +00:00
parent c66eded7bf
commit f890ad71f1
14 changed files with 245 additions and 7 deletions
@@ -0,0 +1,41 @@
## Why
На странице опубликованных постов (`/published`):
1. Заголовок «Опубликованные посты» перекрывается верхним меню. Причина:
`base.html` использует `navbar fixed-top` (position: fixed, поверх контента),
а `body` имеет только `padding-top: 1.5rem` (24px) — этого недостаточно:
Bootstrap fixed-top navbar высотой ~56px перекрывает первые ~32px контента.
Заголовок оказывается под меню.
2. На карточках постов нет ID — невозможно быстро сослаться на конкретный пост
(в интерфейсе кандидатов ID есть: `#153`, `#136` и т.д.). При обсуждении
«опубликуй/исправь пост такой-то» приходится искать по тексту.
## What Changes
- В `web/templates/base.html`:
- Увеличить `body { padding-top }` с `1.5rem` до `4.5rem` (~72px), чтобы
контент не заезжал под fixed-top navbar (56px + отступ).
- В `web/templates/published.html`:
- Добавить ID поста в карточку. Самый заметный вариант — в заголовок
рядом с направлением: `<span class="badge bg-secondary">#{{ p.id }} · {{ p.direction or '?' }}</span>`,
чтобы ID был виден сразу, как в кандидатах. Альтернатива — маленькая
подпись в шапке карточки.
## Why Not
- Не менять `fixed-top` на статичную навигацию: меню должно оставаться доступным
при скролле длинного списка опубликованных.
- Не добавлять ID отдельной строкой: визуальный шум; лучше в существующем
бейдже направления.
- Не трогать кандидатов (там ID уже есть).
## Impact
- Файлы: `web/templates/base.html`, `web/templates/published.html`.
- Данные: без миграций БД.
- Сервис: `vesti-web` (:8400) — перезапуск не требуется для Jinja2-шаблонов
(шаблоны читаются с диска при каждом рендере, `tpl` без кэша).
Тем не менее для надёжности — `sudo systemctl restart vesti-web`.
- Rollback: откатить правки шаблонов (git revert).