forked from DGNum/gestioCOF
Améliore l'algo d'inscription à une revente
Au lieu d'inscrire les gens à la première revente qu'on trouve on les inscrit à celle qui a le moins de participants
This commit is contained in:
parent
330b45fb2c
commit
28df0355c2
1 changed files with 17 additions and 9 deletions
26
bda/views.py
26
bda/views.py
|
@ -405,15 +405,23 @@ def list_revente(request, tirage_id):
|
||||||
for spectacle in choices:
|
for spectacle in choices:
|
||||||
qset = SpectacleRevente.objects.filter(
|
qset = SpectacleRevente.objects.filter(
|
||||||
attribution__spectacle=spectacle)
|
attribution__spectacle=spectacle)
|
||||||
if qset.exists():
|
if qset.filter(shotgun=True, soldTo__isnull=True).exists():
|
||||||
# On l'inscrit à l'un des tirages au sort
|
# Une place est disponible au shotgun, on suggère à
|
||||||
for revente in qset.all():
|
# l'utilisateur d'aller la récupérer
|
||||||
if revente.shotgun and not revente.soldTo:
|
deja_revente = True
|
||||||
deja_revente = True
|
else:
|
||||||
else:
|
# La place n'est pas disponible au shotgun, si des reventes
|
||||||
revente.answered_mail.add(participant)
|
# pour ce spectacle existent déjà, on inscrit la personne à
|
||||||
revente.save()
|
# la revente ayant le moins d'inscrits
|
||||||
break
|
min_resell = (
|
||||||
|
qset.filter(shotgun=False)
|
||||||
|
.annotate(nb_subscribers=Count('answered_mail'))
|
||||||
|
.order_by('nb_subscribers')
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
if min_resell is not None:
|
||||||
|
min_resell.answered_mail.add(participant)
|
||||||
|
min_resell.save()
|
||||||
success = True
|
success = True
|
||||||
else:
|
else:
|
||||||
form = InscriptionReventeForm(
|
form = InscriptionReventeForm(
|
||||||
|
|
Loading…
Reference in a new issue