Merge branch 'main' into nonfree_main
This commit is contained in:
commit
d62e77e71d
|
|
@ -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 = []
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue