Jauge atteinte, evenement complet
This commit is contained in:
parent
e0b07f51f7
commit
743dc7e2dc
|
|
@ -291,10 +291,14 @@ class ReservationValidator(serializers.Serializer):
|
|||
if self.nbr_ticket == 0:
|
||||
raise serializers.ValidationError(_(f'pas de billet dans la reservation'))
|
||||
|
||||
event : Event = attrs.get('event')
|
||||
if event.complet() :
|
||||
raise serializers.ValidationError(_(f'Jauge atteinte : Evenement complet.'))
|
||||
|
||||
config = Configuration.get_solo()
|
||||
reservation = Reservation.objects.create(
|
||||
user_commande=self.user_commande,
|
||||
event=attrs.get('event'),
|
||||
event=event,
|
||||
)
|
||||
|
||||
lignes_article = []
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ from stdimage import StdImageField
|
|||
from stdimage.validators import MaxSizeValidator
|
||||
from django.db import connection
|
||||
|
||||
import AuthBillet.models
|
||||
from QrcodeCashless.models import CarteCashless
|
||||
from TiBillet import settings
|
||||
import stripe
|
||||
|
|
@ -346,7 +347,7 @@ class Event(models.Model):
|
|||
delete_orphans=True
|
||||
)
|
||||
|
||||
reservations = models.PositiveSmallIntegerField(default=0)
|
||||
# reservations = models.PositiveSmallIntegerField(default=0)
|
||||
|
||||
CONCERT = "LIV"
|
||||
FESTIVAL = "FES"
|
||||
|
|
@ -362,9 +363,18 @@ class Event(models.Model):
|
|||
categorie = models.CharField(max_length=3, choices=TYPE_CHOICES, default=CONCERT,
|
||||
verbose_name=_("Catégorie d'évènement"))
|
||||
|
||||
|
||||
|
||||
def reservations(self):
|
||||
return Ticket.objects.filter(reservation__event__pk=self.pk)\
|
||||
.exclude(status=Ticket.CREATED)\
|
||||
.exclude(status=Ticket.NOT_ACTIV)\
|
||||
.count()
|
||||
|
||||
|
||||
def complet(self):
|
||||
# TODO: Benchmarker et tester si c'est pas mieux dans template
|
||||
if self.reservations >= Configuration.get_solo().jauge_max:
|
||||
if self.reservations() >= Configuration.get_solo().jauge_max:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
|
@ -388,7 +398,7 @@ class Reservation(models.Model):
|
|||
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True, db_index=True)
|
||||
datetime = models.DateTimeField(auto_now=True)
|
||||
|
||||
user_commande = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
||||
user_commande: AuthBillet.models.TibilletUser = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
||||
|
||||
event = models.ForeignKey(Event,
|
||||
on_delete=models.PROTECT,
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ def set_paiement_valid(old_instance, new_instance):
|
|||
new_instance: Reservation
|
||||
if new_instance.mail_send:
|
||||
logger.info(
|
||||
f" TRIGGER RESERVATION set_paiement_valid Mail envoyé {new_instance.mail_send}, on valide les paiement payés")
|
||||
f" TRIGGER RESERVATION set_paiement_valid Mail envoyé {new_instance.mail_send}, on valide les paiements payés")
|
||||
for paiement in new_instance.paiements.filter(status=Paiement_stripe.PAID):
|
||||
paiement.status = Paiement_stripe.VALID
|
||||
paiement.traitement_en_cours = False
|
||||
|
|
|
|||
Loading…
Reference in New Issue