Files
vesti/openspec/changes/fix-published-page/proposal.md
T
kpa39l f890ad71f1 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: бэкапы автоматические по крону, вручную не запускать
2026-09-14 04:39:08 +00:00

42 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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).