add all suppress modal
All checks were successful
Deploy Amap / deploy (push) Successful in 41s

This commit is contained in:
Julien Aldon
2026-03-06 16:48:38 +01:00
parent 74bf1474e2
commit 46b369ecd9
39 changed files with 654 additions and 372 deletions

View File

@@ -196,6 +196,24 @@ def get_contract_file(
)
@router.get(
'/{_id}/preview-delete',
response_model=list[models.DeleteDependency]
)
async def preview_delete(
_id: int,
session: Session = Depends(get_session),
user: models.User = Depends(get_current_user),
):
if not service.is_allowed(session, user, _id=_id):
raise HTTPException(
status_code=403,
detail=messages.Messages.not_allowed('contract', 'delete')
)
result = []
return result
@router.get('/{form_id}/files')
def get_contract_files(
form_id: int,

View File

@@ -18,6 +18,30 @@ def get_productors(
return service.get_all(session, user, names, types)
@router.get(
'/{_id}/preview-delete',
response_model=list[models.DeleteDependency]
)
async def preview_delete(
_id: int,
session: Session = Depends(get_session),
user: models.User = Depends(get_current_user),
):
if not service.is_allowed(session, user, _id=_id):
raise HTTPException(
status_code=403,
detail=messages.Messages.not_allowed('productors', 'delete')
)
try:
result = service.get_delete_dependencies(
session,
_id
)
except exceptions.ProductorNotFoundError as error:
raise HTTPException(status_code=404, detail=str(error)) from error
return result
@router.get('/{_id}', response_model=models.ProductorPublic)
def get_productor(
_id: int,

View File

@@ -93,6 +93,33 @@ def delete_one(session: Session, _id: int) -> models.ProductorPublic:
session.commit()
return result
def get_delete_dependencies(
session: Session,
_id: int
) -> list[models.DeleteDependency]:
statement = select(models.Productor).where(models.Productor.id == _id)
result = session.exec(statement)
productor = result.first()
if not productor:
raise exceptions.ProductorNotFoundError(
messages.Messages.not_found('productor'))
products_statement = (
select(models.Product)
.where(models.Product.productor_id == _id)
.distinct()
)
products = session.exec(products_statement).all()
result = [
models.DeleteDependency(
name=pro.name,
id=pro.id,
type='product'
) for pro in products
]
return result
def is_allowed(
session: Session,
user: models.User,

View File

@@ -26,6 +26,23 @@ def get_products(
)
@router.get(
'/{_id}/preview-delete',
response_model=list[models.DeleteDependency]
)
async def preview_delete(
_id: int,
session: Session = Depends(get_session),
user: models.User = Depends(get_current_user),
):
if not service.is_allowed(session, user, _id=_id):
raise HTTPException(
status_code=403,
detail=messages.Messages.not_allowed('product', 'delete')
)
return []
@router.get('/{_id}', response_model=models.ProductPublic)
def get_product(
_id: int,

View File

@@ -93,6 +93,7 @@ def delete_one(
session.commit()
return result
def is_allowed(
session: Session,
user: models.User,
@@ -103,12 +104,8 @@ def is_allowed(
return False
if not _id:
statement = (
select(models.Product)
.join(
models.Productor,
models.Product.productor_id == models.Productor.id
)
.where(models.Product.id == product.productor_id)
select(models.Productor)
.where(models.Productor.id == product.productor_id)
)
productor = session.exec(statement).first()
return productor.type in [r.name for r in user.roles]

View File

@@ -26,6 +26,23 @@ def get_shipments(
)
@router.get(
'/{_id}/preview-delete',
response_model=list[models.DeleteDependency]
)
async def preview_delete(
_id: int,
session: Session = Depends(get_session),
user: models.User = Depends(get_current_user),
):
if not service.is_allowed(session, user, _id=_id):
raise HTTPException(
status_code=403,
detail=messages.Messages.not_allowed('shipment', 'delete')
)
return []
@router.get('/{_id}', response_model=models.ShipmentPublic)
def get_shipment(
_id: int,

View File

@@ -36,6 +36,22 @@ def get_roles(
return service.get_roles(session)
@router.get(
'/{_id}/preview-delete',
response_model=list[models.DeleteDependency]
)
async def preview_delete(
_id: int,
user: models.User = Depends(get_current_user),
):
if not service.is_allowed(user):
raise HTTPException(
status_code=403,
detail=messages.Messages.not_allowed('user', 'delete')
)
return []
@router.get('/{_id}', response_model=models.UserPublic)
def get_user(
_id: int,