fix(models.Reservation.clean): le clean() concerne les nouvelles reservations
Parent
97f0ef21a7
révision
24ad43e0c5
|
@ -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
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket