fix app crash
All checks were successful
Deploy Amap / deploy (push) Successful in 32s

This commit is contained in:
Julien Aldon
2026-02-20 10:33:00 +01:00
parent e37fae439f
commit 7a94f1c96a
11 changed files with 31 additions and 30 deletions

View File

@@ -29,7 +29,8 @@ dependencies = [
"cryptography", "cryptography",
"requests", "requests",
"weasyprint", "weasyprint",
"odfdo" "odfdo",
"alembic"
] ]
[project.urls] [project.urls]

View File

@@ -115,7 +115,7 @@ def get_contracts(
): ):
return service.get_all(session, user, forms) return service.get_all(session, user, forms)
@router.get('{id}/file') @router.get('/{id}/file')
def get_contract_file( def get_contract_file(
id: int, id: int,
session: Session = Depends(get_session), session: Session = Depends(get_session),
@@ -135,7 +135,7 @@ def get_contract_file(
} }
) )
@router.get('{form_id}/files') @router.get('/{form_id}/files')
def get_contract_files( def get_contract_files(
form_id: int, form_id: int,
session: Session = Depends(get_session), session: Session = Depends(get_session),
@@ -160,7 +160,7 @@ def get_contract_files(
} }
) )
@router.get('{form_id}/recap') @router.get('/{form_id}/recap')
def get_contract_recap( def get_contract_recap(
form_id: int, form_id: int,
session: Session = Depends(get_session), session: Session = Depends(get_session),
@@ -179,7 +179,7 @@ def get_contract_recap(
} }
) )
@router.get('{id}', response_model=models.ContractPublic) @router.get('/{id}', response_model=models.ContractPublic)
def get_contract(id: int, session: Session = Depends(get_session), user: models.User = Depends(get_current_user)): 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): if not service.is_allowed(session, user, id):
raise HTTPException(status_code=403, detail=messages.notallowed) raise HTTPException(status_code=403, detail=messages.notallowed)
@@ -188,7 +188,7 @@ def get_contract(id: int, session: Session = Depends(get_session), user: models.
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.ContractPublic) @router.delete('/{id}', response_model=models.ContractPublic)
def delete_contract(id: int, session: Session = Depends(get_session), user: models.User = Depends(get_current_user)): 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): if not service.is_allowed(session, user, id):
raise HTTPException(status_code=403, detail=messages.notallowed) raise HTTPException(status_code=403, detail=messages.notallowed)

View File

@@ -17,7 +17,7 @@ async def get_forms(
): ):
return service.get_all(session, seasons, productors, current_season) return service.get_all(session, seasons, productors, current_season)
@router.get('{id}', response_model=models.FormPublic) @router.get('/{id}', response_model=models.FormPublic)
async def get_form(id: int, session: Session = Depends(get_session)): async def get_form(id: int, session: Session = Depends(get_session)):
result = service.get_one(session, id) result = service.get_one(session, id)
if result is None: if result is None:
@@ -32,7 +32,7 @@ async def create_form(
): ):
return service.create_one(session, form) return service.create_one(session, form)
@router.put('{id}', response_model=models.FormPublic) @router.put('/{id}', response_model=models.FormPublic)
async def update_form( async def update_form(
id: int, form: models.FormUpdate, id: int, form: models.FormUpdate,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -43,7 +43,7 @@ async def update_form(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.FormPublic) @router.delete('/{id}', response_model=models.FormPublic)
async def delete_form( async def delete_form(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -17,7 +17,7 @@ def get_productors(
): ):
return service.get_all(session, names, types) return service.get_all(session, names, types)
@router.get('{id}', response_model=models.ProductorPublic) @router.get('/{id}', response_model=models.ProductorPublic)
def get_productor( def get_productor(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -36,7 +36,7 @@ def create_productor(
): ):
return service.create_one(session, productor) return service.create_one(session, productor)
@router.put('{id}', response_model=models.ProductorPublic) @router.put('/{id}', response_model=models.ProductorPublic)
def update_productor( def update_productor(
id: int, productor: models.ProductorUpdate, id: int, productor: models.ProductorUpdate,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -47,7 +47,7 @@ def update_productor(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.ProductorPublic) @router.delete('/{id}', response_model=models.ProductorPublic)
def delete_productor( def delete_productor(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -6,7 +6,7 @@ from sqlmodel import Session
import src.products.service as service import src.products.service as service
from src.auth.auth import get_current_user from src.auth.auth import get_current_user
router = APIRouter(prefix='/products') router = APIRouter(prefix='/products')
#user=Depends(get_current_user)
@router.get('', response_model=list[models.ProductPublic], ) @router.get('', response_model=list[models.ProductPublic], )
def get_products( def get_products(
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -22,7 +22,7 @@ def get_products(
types, types,
) )
@router.get('{id}', response_model=models.ProductPublic) @router.get('/{id}', response_model=models.ProductPublic)
def get_product( def get_product(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -41,7 +41,7 @@ def create_product(
): ):
return service.create_one(session, product) return service.create_one(session, product)
@router.put('{id}', response_model=models.ProductPublic) @router.put('/{id}', response_model=models.ProductPublic)
def update_product( def update_product(
id: int, product: models.ProductUpdate, id: int, product: models.ProductUpdate,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -52,7 +52,7 @@ def update_product(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.ProductPublic) @router.delete('/{id}', response_model=models.ProductPublic)
def delete_product( def delete_product(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -22,7 +22,7 @@ def get_shipments(
forms, forms,
) )
@router.get('{id}', response_model=models.ShipmentPublic) @router.get('/{id}', response_model=models.ShipmentPublic)
def get_shipment( def get_shipment(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -41,7 +41,7 @@ def create_shipment(
): ):
return service.create_one(session, shipment) return service.create_one(session, shipment)
@router.put('{id}', response_model=models.ShipmentPublic) @router.put('/{id}', response_model=models.ShipmentPublic)
def update_shipment( def update_shipment(
id: int, shipment: models.ShipmentUpdate, id: int, shipment: models.ShipmentUpdate,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -52,7 +52,7 @@ def update_shipment(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.ShipmentPublic) @router.delete('/{id}', response_model=models.ShipmentPublic)
def delete_shipment( def delete_shipment(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -15,7 +15,7 @@ def get_templates(
): ):
return service.get_all(session) return service.get_all(session)
@router.get('{id}', response_model=models.TemplatePublic) @router.get('/{id}', response_model=models.TemplatePublic)
def get_template( def get_template(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -34,7 +34,7 @@ def create_template(
): ):
return service.create_one(session, template) return service.create_one(session, template)
@router.put('{id}', response_model=models.TemplatePublic) @router.put('/{id}', response_model=models.TemplatePublic)
def update_template( def update_template(
id: int, template: models.TemplateUpdate, id: int, template: models.TemplateUpdate,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -45,7 +45,7 @@ def update_template(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.TemplatePublic) @router.delete('/{id}', response_model=models.TemplatePublic)
def delete_template( def delete_template(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -28,7 +28,7 @@ def get_roles(
): ):
return service.get_roles(session) return service.get_roles(session)
@router.get('{id}', response_model=models.UserPublic) @router.get('/{id}', response_model=models.UserPublic)
def get_users( def get_users(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),
@@ -47,7 +47,7 @@ def create_user(
): ):
return service.create_one(session, user) return service.create_one(session, user)
@router.put('{id}', response_model=models.UserPublic) @router.put('/{id}', response_model=models.UserPublic)
def update_user( def update_user(
id: int, id: int,
user: models.UserUpdate, user: models.UserUpdate,
@@ -59,7 +59,7 @@ def update_user(
raise HTTPException(status_code=404, detail=messages.notfound) raise HTTPException(status_code=404, detail=messages.notfound)
return result return result
@router.delete('{id}', response_model=models.UserPublic) @router.delete('/{id}', response_model=models.UserPublic)
def delete_user( def delete_user(
id: int, id: int,
user: models.User = Depends(get_current_user), user: models.User = Depends(get_current_user),

View File

@@ -33,7 +33,7 @@ services:
KEYCLOAK_CLIENT_ID: ${KEYCLOAK_CLIENT_ID} KEYCLOAK_CLIENT_ID: ${KEYCLOAK_CLIENT_ID}
KEYCLOAK_CLIENT_SECRET: ${KEYCLOAK_CLIENT_SECRET} KEYCLOAK_CLIENT_SECRET: ${KEYCLOAK_CLIENT_SECRET}
KEYCLOAK_REDIRECT_URI: ${KEYCLOAK_REDIRECT_URI} KEYCLOAK_REDIRECT_URI: ${KEYCLOAK_REDIRECT_URI}
DEBUG: ${DEBUG} DEBUG: true
MAX_AGE: ${MAX_AGE} MAX_AGE: ${MAX_AGE}
ports: ports:
- "8000:8000" - "8000:8000"

View File

@@ -29,13 +29,13 @@ export function Navbar() {
) : null} ) : null}
</Group> </Group>
{!user?.logged ? ( {!user?.logged ? (
<NavLink <a
href={`${Config.backend_uri}/auth/login`}
className={"navLink"} className={"navLink"}
aria-label={t("login with keycloak", { capfirst: true })} aria-label={t("login with keycloak", { capfirst: true })}
to={`${Config.backend_uri}/auth/login`}
> >
{t("login with keycloak", { capfirst: true })} {t("login with keycloak", { capfirst: true })}
</NavLink> </a>
) : ( ) : (
<a <a
href={`${Config.backend_uri}/auth/logout`} href={`${Config.backend_uri}/auth/logout`}

View File

@@ -36,7 +36,7 @@ export function ProductModal({ opened, onClose, currentProduct, handleSubmit }:
quantity: currentProduct?.quantity ?? null, quantity: currentProduct?.quantity ?? null,
quantity_unit: currentProduct?.quantity_unit ?? null, quantity_unit: currentProduct?.quantity_unit ?? null,
type: currentProduct?.type ?? null, type: currentProduct?.type ?? null,
productor_id: currentProduct ? String(currentProduct.productor.id) : null, productor_id: currentProduct ? String(currentProduct?.productor?.id) : null,
}, },
validate: { validate: {
name: (value) => name: (value) =>