mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
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:
@@ -0,0 +1,3 @@
|
||||
schema: spec-driven
|
||||
created: 2026-09-14
|
||||
skip_specs: true
|
||||
@@ -0,0 +1,44 @@
|
||||
## Design
|
||||
|
||||
### 1. `web/templates/base.html` — отступ под fixed-top navbar
|
||||
|
||||
Текущее:
|
||||
```css
|
||||
body { padding-top: 1.5rem; background: #f5f6fa; }
|
||||
```
|
||||
|
||||
Правка:
|
||||
```css
|
||||
body { padding-top: 4.5rem; background: #f5f6fa; }
|
||||
```
|
||||
|
||||
Пояснение: Bootstrap `navbar fixed-top` имеет высоту по умолчанию 56px (3.5rem).
|
||||
`padding-top: 4.5rem` = 72px → заголовок страницы больше не перекрывается меню.
|
||||
Это правка глобальная — применится и к /candidates, и /published, и /metrics
|
||||
(там отступ сейчас тоже недостаточен).
|
||||
|
||||
### 2. `web/templates/published.html` — ID поста на карточке
|
||||
|
||||
Текущее (строка 9):
|
||||
```html
|
||||
<span class="badge bg-secondary">{{ p.direction or '?' }}</span>
|
||||
```
|
||||
|
||||
Правка:
|
||||
```html
|
||||
<span class="badge bg-secondary">#{{ p.id }} · {{ p.direction or '?' }}</span>
|
||||
```
|
||||
|
||||
ID поста виден сразу на каждой карточке, рядом с направлением — как в списке
|
||||
кандидатов.
|
||||
|
||||
## Верификация
|
||||
|
||||
- `openspec validate fix-published-page` — чисто.
|
||||
- Проверка без перезапуска: `curl -s -b cookies http://127.0.0.1:8400/published`
|
||||
→ в html:
|
||||
- `padding-top: 4.5rem` присутствует в `<style>`;
|
||||
- на карточках есть `#<id>` (например, `#136`, `#1013`).
|
||||
- Рестарт `sudo systemctl restart vesti-web`, повторный curl — то же.
|
||||
- Визуально: заголовок «Опубликованные посты» не перекрывается меню
|
||||
(проверка в браузере).
|
||||
@@ -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).
|
||||
@@ -0,0 +1,10 @@
|
||||
# fix-published-page
|
||||
|
||||
- [x] Создан OpenSpec change (proposal/design) — `skip_specs: true`
|
||||
- [x] base.html: `body { padding-top: 4.5rem }` (отступ под fixed-top navbar)
|
||||
- [x] published.html: на карточке ID поста `#{{ p.id }} · {{ p.direction }}`
|
||||
- [x] `openspec validate fix-published-page` — чисто
|
||||
- [x] Проверка: curl /published → padding-top 4.5rem + ID на карточках
|
||||
- [x] Рестарт vesti-web
|
||||
- [x] Обновить STATUS.md / TODO.md
|
||||
- [x] Git push в gitverse
|
||||
Reference in New Issue
Block a user