add base template for manual fill
Some checks failed
Deploy Amap / deploy (push) Failing after 15s

This commit is contained in:
Julien Aldon
2026-02-20 15:42:15 +01:00
parent 12be0e5650
commit b662a6a1f0
7 changed files with 118 additions and 9 deletions

View File

@@ -105,6 +105,46 @@ async def create_contract(
}
)
@router.get('/{form_id}/base')
async def get_base_contract_template(
form_id: int,
session: Session = Depends(get_session),
):
form = form_service.get_one(session, form_id)
recurrents = [pr for pr in form.productor.products if pr.type == models.ProductType.RECCURENT]
occasionals = [{
'shipment': sh,
'price': None,
'products': [{'product': pr, 'quantity': None} for pr in sh.products]
} for sh in form.shipments]
empty_contract = models.Contract(
firstname="",
form=form,
lastname="",
email="",
phone="",
payment_method="cheque"
)
cheques = [{"name": None, "value": None}, {"name": None, "value": None}, {"name": None, "value": None}]
try:
pdf_bytes = generate_html_contract(
empty_contract,
cheques,
occasionals,
recurrents,
)
pdf_file = io.BytesIO(pdf_bytes)
contract_id = f'{empty_contract.form.productor.type}_{empty_contract.form.season}'
except Exception:
raise HTTPException(status_code=400, detail=messages.pdferror)
return StreamingResponse(
pdf_file,
media_type='application/pdf',
headers={
'Content-Disposition': f'attachment; filename=contract_{contract_id}.pdf'
}
)
@router.get('', response_model=list[models.ContractPublic])
def get_contracts(
forms: list[str] = Query([]),