Skip to content

Commit

Permalink
refacto: déplacement de la responsabilité de la gestion d'erreur
Browse files Browse the repository at this point in the history
La gestion est faite lors des appels à la fonction. Cette dernière ne passe plus les erreurs silencieusement
  • Loading branch information
sblondon committed Nov 13, 2024
1 parent 28fab6a commit ed3d004
Showing 1 changed file with 22 additions and 16 deletions.
38 changes: 22 additions & 16 deletions impact/reglementations/views/csrd.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,11 +313,15 @@ def calculate_status(
if reglementation_status := super().calculate_status(caracteristiques, user):
return reglementation_status

rapport = rapport_csrd(
entreprise=caracteristiques.entreprise,
user=user,
annee=datetime.today().year,
)
try:
rapport = rapport_csrd(
entreprise=caracteristiques.entreprise,
user=user,
annee=datetime.today().year,
)
except ObjectDoesNotExist:
rapport = None

if rapport and rapport.etape_validee:
etape_suivante = EtapeCSRD.id_suivant(rapport.etape_validee)
label_gestion_csrd = "Reprendre ma CSRD"
Expand Down Expand Up @@ -464,15 +468,16 @@ def est_grand_groupe(cls, caracteristiques: CaracteristiquesAnnuelles) -> bool:


def rapport_csrd(user, entreprise, annee):
try:
habilitation = user.habilitation_set.get(entreprise=entreprise)
return RapportCSRD.objects.get(
entreprise=entreprise,
proprietaire=None if habilitation.is_confirmed else user,
annee=annee,
)
except ObjectDoesNotExist:
pass
"""Cherche un RapportCSRD
Lève une exception si le RapportCSRD ou l'Habilitation n'existe pas
"""
habilitation = user.habilitation_set.get(entreprise=entreprise)
return RapportCSRD.objects.get(
entreprise=entreprise,
proprietaire=None if habilitation.is_confirmed else user,
annee=annee,
)


@login_required
Expand Down Expand Up @@ -548,8 +553,9 @@ def gestion_csrd(request, siren=None, id_etape="introduction"):
annee = datetime.now().year

if request.method == "POST":
csrd = rapport_csrd(request.user, entreprise, annee)
if not csrd:
try:
csrd = rapport_csrd(request.user, entreprise, annee)
except ObjectDoesNotExist:
raise Http404
csrd.etape_validee = EtapeCSRD.id_precedent(id_etape)
csrd.save()
Expand Down

0 comments on commit ed3d004

Please sign in to comment.