buy more than one place

This commit is contained in:
Ludovic Stephan 2016-09-11 13:32:38 +02:00
parent 0282f62886
commit 2a56f8e255
2 changed files with 24 additions and 13 deletions

View file

@ -44,6 +44,14 @@ class AttributionModelMultipleChoiceField(forms.ModelMultipleChoiceField):
return "%s" % obj.spectacle return "%s" % obj.spectacle
class BuyResellForm(forms.Form):
num = forms.ChoiceField(choices=[])
def __init__(self, spectacle, *args, **kwargs):
super(BuyResellForm, self).__init__(*args, **kwargs)
self.fields['num'].choices = range(1, spectacle.revente.count())
class ResellForm(forms.Form): class ResellForm(forms.Form):
attributions = AttributionModelMultipleChoiceField( attributions = AttributionModelMultipleChoiceField(
queryset=Attribution.objects.none(), queryset=Attribution.objects.none(),

View file

@ -28,7 +28,7 @@ from bda.models import Spectacle, Participant, ChoixSpectacle, Attribution,\
from bda.algorithm import Algorithm from bda.algorithm import Algorithm
from bda.forms import BaseBdaFormSet, TokenForm, ResellForm, AnnulForm,\ from bda.forms import BaseBdaFormSet, TokenForm, ResellForm, AnnulForm,\
InscriptionReventeForm InscriptionReventeForm, BuyResellForm
@cof_required @cof_required
@ -435,11 +435,14 @@ def buy_revente(request, spectacle_id):
return render(request, "bda-no-revente.html", {}) return render(request, "bda-no-revente.html", {})
if request.POST: if request.POST:
idx = random.randint(0, reventes.count() - 1) form = BuyResellForm(spectacle, request.POST)
revente = reventes.all()[idx] if form.is_valid():
revente.soldTo = participant num = form.cleaned_data['num']
revente.save() reventes = random.sample(reventes.all(), num)
mail = """Bonjour ! for revente in reventes:
revente.soldTo = participant
revente.save()
mail = """Bonjour !
Je souhaiterais racheter ta place pour %s le %s (%s) à %.02f. Je souhaiterais racheter ta place pour %s le %s (%s) à %.02f.
Contacte-moi si tu es toujours intéressé·e ! Contacte-moi si tu es toujours intéressé·e !
@ -447,13 +450,13 @@ Contacte-moi si tu es toujours intéressé·e !
%s (%s)""" % (spectacle.title, spectacle.date_no_seconds(), %s (%s)""" % (spectacle.title, spectacle.date_no_seconds(),
spectacle.location, spectacle.price, spectacle.location, spectacle.price,
request.user.get_full_name(), request.user.email) request.user.get_full_name(), request.user.email)
send_mail("BdA-Revente : %s" % spectacle.title, mail, send_mail("BdA-Revente : %s" % spectacle.title, mail,
request.user.email, request.user.email,
[revente.seller.user.email], [revente.seller.user.email],
fail_silently=False) fail_silently=False)
return render(request, "bda-success.html", return render(request, "bda-success.html",
{"seller": revente.seller.user, {"seller": revente.seller.user,
"spectacle": spectacle}) "spectacle": spectacle})
return render(request, "revente-confirm.html", return render(request, "revente-confirm.html",
{"spectacle": spectacle, {"spectacle": spectacle,