Files

12 lines
1.4 KiB
Markdown

# Задачи
- [x] web/app.py: хелпер `_archive_tree(conn)` — дерево годов/месяцев GROUP BY + счётчики + «Без даты»
- [x] web/app.py: роут `GET /published` — параметры year/month/page, фильтр периода, пагинация по 10 (LIMIT/OFFSET, клампинг)
- [x] web/templates/published.html: правая колонка (col-lg-3 sticky) — дерево навигации, «Все посты», «Без даты»
- [x] web/templates/published.html: список постов за период + Bootstrap pagination (prev/next + номера)
- [x] web/templates/published.html: collapse на мобильных (кнопка «🗂 Архив»)
- [x] web/app.py: `_archive_q` + `tpl.globals["_published_q"]` — построение query-строки с сохранением фильтров
- [x] Тест: py_compile + рендер шаблона (дерево, пагинация, active-класс) через .venv
- [x] openspec validate archive-navigation — чисто (только стилевые SHALL/MUST warned, спека по-русски)
- [x] Рестарт vesti-web, проверка: /published (дерево 2026, 8 постов, без дублей), ?year=2026&month=09 (4), month=08 (2), 2025 (заглушка), пагинация скрыта при 1 стр, битые /published? — 0
- [ ] Обновить STATUS.md / TODO.md