Merge branch 'main' into nonfree_main

This commit is contained in:
Jonas 12t 2022-01-14 12:27:28 +04:00
commit d62e77e71d
4 changed files with 36 additions and 5 deletions

View File

@ -291,10 +291,14 @@ class ReservationValidator(serializers.Serializer):
if self.nbr_ticket == 0: if self.nbr_ticket == 0:
raise serializers.ValidationError(_(f'pas de billet dans la reservation')) 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() config = Configuration.get_solo()
reservation = Reservation.objects.create( reservation = Reservation.objects.create(
user_commande=self.user_commande, user_commande=self.user_commande,
event=attrs.get('event'), event=event,
) )
lignes_article = [] lignes_article = []

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2 on 2022-01-14 08:04
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('BaseBillet', '0024_alter_paiement_stripe_metadata_stripe'),
]
operations = [
migrations.RemoveField(
model_name='event',
name='reservations',
),
]

View File

@ -23,6 +23,7 @@ from stdimage import StdImageField
from stdimage.validators import MaxSizeValidator from stdimage.validators import MaxSizeValidator
from django.db import connection from django.db import connection
import AuthBillet.models
from QrcodeCashless.models import CarteCashless from QrcodeCashless.models import CarteCashless
from TiBillet import settings from TiBillet import settings
import stripe import stripe
@ -346,7 +347,7 @@ class Event(models.Model):
delete_orphans=True delete_orphans=True
) )
reservations = models.PositiveSmallIntegerField(default=0) # reservations = models.PositiveSmallIntegerField(default=0)
CONCERT = "LIV" CONCERT = "LIV"
FESTIVAL = "FES" FESTIVAL = "FES"
@ -362,9 +363,18 @@ class Event(models.Model):
categorie = models.CharField(max_length=3, choices=TYPE_CHOICES, default=CONCERT, categorie = models.CharField(max_length=3, choices=TYPE_CHOICES, default=CONCERT,
verbose_name=_("Catégorie d'évènement")) 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): def complet(self):
# TODO: Benchmarker et tester si c'est pas mieux dans template # 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 return True
else: else:
return False 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) uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True, db_index=True)
datetime = models.DateTimeField(auto_now=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, event = models.ForeignKey(Event,
on_delete=models.PROTECT, on_delete=models.PROTECT,

View File

@ -169,7 +169,7 @@ def set_paiement_valid(old_instance, new_instance):
new_instance: Reservation new_instance: Reservation
if new_instance.mail_send: if new_instance.mail_send:
logger.info( 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): for paiement in new_instance.paiements.filter(status=Paiement_stripe.PAID):
paiement.status = Paiement_stripe.VALID paiement.status = Paiement_stripe.VALID
paiement.traitement_en_cours = False paiement.traitement_en_cours = False