35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
"""HTML-страницы админки (серверный рендер Jinja2 + HTMX)."""
|
||
|
||
from __future__ import annotations
|
||
|
||
from fastapi import APIRouter, Request
|
||
from fastapi.responses import HTMLResponse
|
||
|
||
from common import __version__
|
||
|
||
router = APIRouter(tags=["pages"])
|
||
|
||
#: Разделы админки по плану Блока 4 (пока заглушки на главной).
|
||
SECTIONS: tuple[tuple[str, str, str], ...] = (
|
||
("messages", "Сообщения", "Тексты бота и предпросмотр с тегами {tag}"),
|
||
("schedules", "Расписания", "Время рассылок, дни недели и шаблон"),
|
||
("users", "Пользователи", "Ники, звания, баланс и подписка"),
|
||
("logs", "Логи", "События из ClickHouse с фильтрами"),
|
||
)
|
||
|
||
|
||
@router.get("/", response_class=HTMLResponse)
|
||
async def index(request: Request) -> HTMLResponse:
|
||
"""Главная страница: версия, окружение и список будущих разделов."""
|
||
templates = request.app.state.templates
|
||
settings = request.app.state.settings
|
||
return templates.TemplateResponse(
|
||
request=request,
|
||
name="index.html",
|
||
context={
|
||
"version": __version__,
|
||
"app_env": settings.app_env,
|
||
"sections": SECTIONS,
|
||
},
|
||
)
|