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
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):
attributions = AttributionModelMultipleChoiceField(
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.forms import BaseBdaFormSet, TokenForm, ResellForm, AnnulForm,\
InscriptionReventeForm
InscriptionReventeForm, BuyResellForm
@cof_required
@ -435,11 +435,14 @@ def buy_revente(request, spectacle_id):
return render(request, "bda-no-revente.html", {})
if request.POST:
idx = random.randint(0, reventes.count() - 1)
revente = reventes.all()[idx]
revente.soldTo = participant
revente.save()
mail = """Bonjour !
form = BuyResellForm(spectacle, request.POST)
if form.is_valid():
num = form.cleaned_data['num']
reventes = random.sample(reventes.all(), num)
for revente in reventes:
revente.soldTo = participant
revente.save()
mail = """Bonjour !
Je souhaiterais racheter ta place pour %s le %s (%s) à %.02f.
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(),
spectacle.location, spectacle.price,
request.user.get_full_name(), request.user.email)
send_mail("BdA-Revente : %s" % spectacle.title, mail,
request.user.email,
[revente.seller.user.email],
fail_silently=False)
return render(request, "bda-success.html",
{"seller": revente.seller.user,
"spectacle": spectacle})
send_mail("BdA-Revente : %s" % spectacle.title, mail,
request.user.email,
[revente.seller.user.email],
fail_silently=False)
return render(request, "bda-success.html",
{"seller": revente.seller.user,
"spectacle": spectacle})
return render(request, "revente-confirm.html",
{"spectacle": spectacle,