revente des places au shotgun

This commit is contained in:
Ludovic Stephan 2016-09-03 18:47:38 +02:00
parent 285e3cb78f
commit 46f91adc08
4 changed files with 45 additions and 23 deletions

View file

@ -1,12 +1,8 @@
{% extends "base_title.html" %} {% extends "base_title.html" %}
{% load staticfiles %} {% load staticfiles %}
{% block extra_head %}
<link type="text/css" rel="stylesheet" href="{% static "css/bda.css" %}" />
{% endblock %}
{% block realcontent %} {% block realcontent %}
<h1>Revente de place</h1> <h2>Revente de place</h2>
<p class="success">Votre offre de revente de {{ places }} pour {{ show.title }} le {{ show.date_no_seconds }} ({{ show.location }}) à {{ show.price }}€ a bien été envoyée.</p> <p class="success">Un mail a bien été envoyé à {{seller.get_full_name}} ({{seller.email}}), pour racheter une place pour {{spectacle.title}} !</p>
{% endblock %} {% endblock %}

View file

@ -1,16 +1,17 @@
{% extends "base_title.html" %} {% extends "base_title.html" %}
{% load staticfiles %} {% load bootstrap %}
{% block realcontent %} {% block realcontent %}
<h2>Inscriptions pour BDA-Revente</h2> <h2>Inscriptions pour BDA-Revente</h2>
<form action="" method="post"> <form action="" class="form-horizontal" method="post">
{% csrf_token %} {% csrf_token %}
{{form}} {{form | bootstrap}}
<input type="submit" value="S'inscrire pour les places sélectionnées"> <input type="submit" class="btn btn-primary" value="S'inscrire pour les places sélectionnées">
</form> </form>
{% if shotgun %} {% if shotgun %}
<h2>Places disponibles immédiatement</h2> <br>
<h3>Places disponibles immédiatement</h3>
<ul> <ul>
{% for spectacle in shotgun %} {% for spectacle in shotgun %}
<li><a href="{% url "bda-buy-revente" spectacle.id %}">{{spectacle}}</a></li> <li><a href="{% url "bda-buy-revente" spectacle.id %}">{{spectacle}}</a></li>

View file

@ -1,14 +1,19 @@
{% extends "base_title.html" %} {% extends "base_title.html" %}
{% load staticfiles %} {% load staticfiles %}
{# TODO: ajouter template du mail ? Changer formulation #}
{%block realcontent %} {%block realcontent %}
Vous êtes sur le point de racheter une place pour {{spectacle.title}} à {{selected.attribution.participant.user.get_full_name}} ; confirmez-vous ceci ? Un mail lui sera envoyé pour le/la notifier et vous permettre d'entrer en contact. <h2>Rachat d'une place</h2>
Note : ce mail sera envoyé à une personne au hasard revendant sa place.
<pre>
Bonjour !
Je souhaiterais racheter ta place pour {{spectacle.title}} le {{spectacle.date}} ({{spectacle.location}}) à {{spectacle.price}}€.
Contacte-moi si tu es toujours intéressé-e !
{{user.get_full_name}} ({{user.email}})
</pre>
<form action="" method="post"> <form action="" method="post">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="id" value="{{selected.id}}"> <input type="submit" class="btn btn-primary pull-right" value="Envoyer">
<input type="submit" value="Confirmer">
</form> </form>
{%endblock%} {%endblock%}

View file

@ -323,7 +323,8 @@ def list_revente(request, tirage_id):
shotgun = [] shotgun = []
for spectacle in spectacles: for spectacle in spectacles:
revente_objects = SpectacleRevente.objects.filter( revente_objects = SpectacleRevente.objects.filter(
attribution__spectacle=spectacle) attribution__spectacle=spectacle,
soldTo__isnull=True)
revente_count = 0 revente_count = 0
for revente in revente_objects: for revente in revente_objects:
if revente.shotgun: if revente.shotgun:
@ -354,17 +355,36 @@ def buy_revente(request, spectacle_id):
participant, created = Participant.objects.get_or_create( participant, created = Participant.objects.get_or_create(
user=request.user, tirage=tirage) user=request.user, tirage=tirage)
reventes = SpectacleRevente.objects.filter( reventes = SpectacleRevente.objects.filter(
attribution__spectacle=spectacle) attribution__spectacle=spectacle,
soldTo__isnull=True)
if not reventes.exists():
return render(request, "bda-no-revente.html", {})
if request.POST: if request.POST:
revente = SpectacleRevente.objects.get(pk=request.POST['id']) idx = random.randint(0, reventes.count() - 1)
revente = reventes.all()[idx]
revente.soldTo = participant revente.soldTo = participant
revente.save() revente.save()
mail = """Bonjour !
Je souhaiterais racheter ta place pour %s le %s (%s) à %.02f.
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.attribution.participant.user.email],
fail_silently=False)
return render(request, "bda-success.html",
{"seller": revente.attribution.participant.user,
"spectacle": spectacle})
if reventes.exists():
idx = random.randint(0, reventes.count() - 1)
selected = reventes.all()[idx]
return render(request, "revente-confirm.html", return render(request, "revente-confirm.html",
{"selected": selected, "spectacle": spectacle}) {"spectacle": spectacle,
"user": request.user})
@buro_required @buro_required