add forms, shipments tests
Some checks failed
Deploy Amap / deploy (push) Failing after 52s

This commit is contained in:
Julien Aldon
2026-02-27 12:21:50 +01:00
parent 61cbbf0366
commit d28640711c
27 changed files with 606 additions and 138 deletions

View File

@@ -81,8 +81,6 @@ async def create_contract(
recurrent_price = compute_recurrent_prices(recurrents, len(new_contract.form.shipments))
price = recurrent_price + compute_occasional_prices(occasionals)
cheques = list(map(lambda x: {"name": x.name, "value": x.value}, new_contract.cheques))
# TODO: send contract to referer
try:
pdf_bytes = generate_html_contract(
new_contract,
@@ -165,10 +163,10 @@ def get_contract_file(
user: models.User = Depends(get_current_user)
):
if not service.is_allowed(session, user, id):
raise HTTPException(status_code=403, detail=messages.notallowed)
raise HTTPException(status_code=403, detail=messages.Messages.not_allowed('contract', 'get'))
contract = service.get_one(session, id)
if contract is None:
raise HTTPException(status_code=404, detail=messages.notfound)
raise HTTPException(status_code=404, detail=messages.Messages.not_found('contract'))
filename = f'{contract.form.name.replace(' ', '_')}_{contract.form.season}_{contract.firstname}-{contract.lastname}'
return StreamingResponse(
io.BytesIO(contract.file),
@@ -185,7 +183,7 @@ def get_contract_files(
user: models.User = Depends(get_current_user)
):
if not form_service.is_allowed(session, user, form_id):
raise HTTPException(status_code=403, detail=messages.notallowed)
raise HTTPException(status_code=403, detail=messages.Messages.not_allowed('contracts', 'get'))
form = form_service.get_one(session, form_id=form_id)
contracts = service.get_all(session, user, forms=[form.name])
zipped_contracts = io.BytesIO()
@@ -210,7 +208,7 @@ def get_contract_recap(
user: models.User = Depends(get_current_user)
):
if not form_service.is_allowed(session, user, form_id):
raise HTTPException(status_code=403, detail=messages.notallowed)
raise HTTPException(status_code=403, detail=messages.Messages.not_allowed('contract recap', 'get'))
form = form_service.get_one(session, form_id=form_id)
contracts = service.get_all(session, user, forms=[form.name])
@@ -225,17 +223,17 @@ def get_contract_recap(
@router.get('/{id}', response_model=models.ContractPublic)
def get_contract(id: int, session: Session = Depends(get_session), user: models.User = Depends(get_current_user)):
if not service.is_allowed(session, user, id):
raise HTTPException(status_code=403, detail=messages.notallowed)
raise HTTPException(status_code=403, detail=messages.Messages.not_allowed('contract', 'get'))
result = service.get_one(session, id)
if result is None:
raise HTTPException(status_code=404, detail=messages.notfound)
raise HTTPException(status_code=404, detail=messages.Messages.not_found('contract'))
return result
@router.delete('/{id}', response_model=models.ContractPublic)
def delete_contract(id: int, session: Session = Depends(get_session), user: models.User = Depends(get_current_user)):
if not service.is_allowed(session, user, id):
raise HTTPException(status_code=403, detail=messages.notallowed)
raise HTTPException(status_code=403, detail=messages.Messages.not_allowed('contract', 'delete'))
result = service.delete_one(session, id)
if result is None:
raise HTTPException(status_code=404, detail=messages.notfound)
raise HTTPException(status_code=404, detail=messages.Messages.not_found('contract'))
return result