Commit inicial - upload de todos os arquivos da pasta
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""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 .storage import money
|
||||
|
||||
TEMPLATES_DIR = Path(__file__).resolve().parent / "templates"
|
||||
|
||||
templates = Jinja2Templates(directory=str(TEMPLATES_DIR))
|
||||
templates.env.filters["money"] = money
|
||||
|
||||
|
||||
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",
|
||||
}
|
||||
base.update(context)
|
||||
return templates.TemplateResponse(request, name, base, status_code=status_code)
|
||||
Reference in New Issue
Block a user