generayion du XML a partir d'un template

This commit is contained in:
2026-03-16 01:32:28 +01:00
parent 8e79796781
commit b1029d10d3
4 changed files with 45 additions and 358 deletions

View File

@@ -3,7 +3,7 @@ Helper pour injecter automatiquement current_user dans le contexte Jinja2.
"""
from fastapi import Request
from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse
from starlette.responses import HTMLResponse, Response
def render(templates: Jinja2Templates, template_name: str,
@@ -17,3 +17,20 @@ def render(templates: Jinja2Templates, template_name: str,
response = templates.TemplateResponse(template_name, ctx)
response.status_code = status_code
return response
def render_xml(templates: Jinja2Templates, template_name: str,
request: Request, invoice: "Invoice",
filename: str = "factur-x.xml") -> Response:
xml_content = templates.env.get_template(template_name).render(
request=request,
invoice=invoice,
seller=invoice.seller,
buyer=invoice.buyer,
)
return Response(
content=xml_content,
media_type="application/xml",
headers={"Content-Disposition": f'attachment; filename="{filename}"'}
)