Commit inicial - upload de todos os arquivos da pasta

This commit is contained in:
2026-07-24 23:55:21 -03:00
commit 9d4d395881
88 changed files with 9484 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
"""Configuração do Jinja2 e helpers de renderização/flash."""
from __future__ import annotations
from pathlib import Path
from fastapi.templating import Jinja2Templates
from starlette.requests import Request
from starlette.responses import HTMLResponse
from . import auth
from .config import get_settings
from .dates import ANOS_COMPETENCIA, MESES, format_competencia
from .storage import money
TEMPLATES_DIR = Path(__file__).resolve().parent / "templates"
templates = Jinja2Templates(directory=str(TEMPLATES_DIR))
templates.env.filters["money"] = money
templates.env.filters["competencia"] = format_competencia
def flash(request: Request, message: str, level: str = "info") -> None:
bucket = request.session.setdefault("_flash", [])
bucket.append({"message": message, "level": level})
def pop_flash(request: Request) -> list[dict[str, str]]:
return request.session.pop("_flash", [])
def render(request: Request, name: str, status_code: int = 200, **context) -> HTMLResponse:
settings = get_settings()
base = {
"request": request,
"current_user": auth.current_user(request),
"csrf_token": auth.get_csrf_token(request),
"flashes": pop_flash(request),
"openai_enabled": settings.openai_enabled,
"app_name": "Lernotafiscal",
"meses_competencia": MESES,
"anos_competencia": ANOS_COMPETENCIA,
}
base.update(context)
return templates.TemplateResponse(request, name, base, status_code=status_code)