fix(models.Reservation.clean): le clean() concerne les nouvelles reservations

pull/32/head
Vincent Adolphe 2021-10-13 16:48:08 +02:00
Parent 97f0ef21a7
révision 24ad43e0c5
1 fichiers modifiés avec 26 ajouts et 24 suppressions

Voir le fichier

@ -615,32 +615,34 @@ class Reservation(AccessHistoryMixin):
)
def clean(self):
if self.id is None: # en cas de nouvelle reservation
# valide automatiquement la réservation pour un responsable
if self.personne.a_la_fonction(Fonction.RESPONSABLE):
self.statut = Reservation.Statut.ACCEPTE
# il ne doit pas y avoir de reservation pour la meme
# personne durant la meme semaine (1 BETG par semaine)
rms = (
self.personne.reservations.a_venir()
.reservees()
.filter(evenement__ordweek=self.evenement.ordweek)
.exists()
if self.id is not None: # en cas de reservation existante
return
# en cas de nouvelle reservation
# valide automatiquement la réservation pour un responsable
if self.personne.a_la_fonction(Fonction.RESPONSABLE):
self.statut = Reservation.Statut.ACCEPTE
# il ne doit pas y avoir de reservation pour la meme
# personne durant la meme semaine (1 BETG par semaine)
rms = (
self.personne.reservations.a_venir()
.reservees()
.filter(evenement__ordweek=self.evenement.ordweek)
.exists()
)
if rms:
raise ValidationError(
"L'événement « {0} » n'est pas réservable, vous avez "
"déjà une réservation pour cette semaine".format(
self.evenement.nom
)
)
if rms:
raise ValidationError(
"L'événement « {0} » n'est pas réservable, vous avez "
"déjà une réservation pour cette semaine".format(
self.evenement.nom
)
)
# est ce que l'evenement est reservable ?
if not self.evenement.est_reservable:
raise ValidationError(
"L'événement « {0} » n'est plus ou pas encore réservable".format(
self.evenement.nom
)
# est ce que l'evenement est reservable ?
if not self.evenement.est_reservable:
raise ValidationError(
"L'événement « {0} » n'est plus ou pas encore réservable".format(
self.evenement.nom
)
)
# si la personne n'est pas un responsable, il faut
# laisser TPS_REFLEXION + VAL_AUTO_NB_J_AV_EVT entre
# la date de la reservation et celle de l'evenement