|
|
|
@ -615,32 +615,34 @@ class Reservation(AccessHistoryMixin):
@@ -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 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 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 |
|
|
|
|
) |
|
|
|
|
# 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 |
|
|
|
|