interface de revente de places

This commit is contained in:
Ludovic Stephan 2016-07-23 22:22:17 +02:00
parent ca39dc813b
commit 2aaf9f681e
2 changed files with 37 additions and 25 deletions

View file

@ -1,26 +1,29 @@
{% extends "base_title.html" %}
{% load staticfiles %}
{% block extra_head %}
<link type="text/css" rel="stylesheet" href="{% static "css/bda.css" %}" />
{% endblock %}
{% block realcontent %}
<h1>Revente de place</h1>
<form action="" method="post" id="resellform">
{% if no_resell %}
<h2>Places non revendues</h2>
<form action="" method="post">
{% csrf_token %}
{% if form.spectacle.errors %}<ul class="errorlist"><li>Sélectionnez un spetacle</li></ul>{% endif %}
<p>
<pre>
Bonjour,<br />
<br />
Je souhaite revendre {{ form.count }} place(s) pour {{ form.spectacle }}.<br />
Contactez-moi par email si vous êtes intéressé !<br />
<br />
{{ user.get_full_name }} ({{ user.email }})
</pre>
</p>
<input type="submit" value="Envoyer" />
<ol>
{% for attribution in no_resell %}
<li>{{attribution.spectacle}} <input type="checkbox" name="resell" value="{{attribution.id}}"></li>
{% endfor %}
</ol>
<input type="submit" value="Revendre les places sélectionnées">
</form>
{%endif%}
<h2>Places en cours de revente</h2>
<form action="" method="post">
{% csrf_token %}
<ol>
{% for attribution in resell %}
<li>{{attribution.spectacle}} <input type="checkbox" name="annul" value="{{attribution.id}}"></li>
{% endfor %}
</ol>
<input type="submit" value="Annuler les reventes sélectionnées">
</form>
{% endblock %}

View file

@ -6,6 +6,7 @@ from __future__ import unicode_literals
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.db import models
from django.db.models import Count
from django.core import serializers
@ -21,10 +22,10 @@ import time
from gestioncof.decorators import cof_required, buro_required
from bda.models import Spectacle, Participant, ChoixSpectacle, Attribution,\
Tirage, render_template
Tirage, render_template, SpectacleRevente
from bda.algorithm import Algorithm
from bda.forms import BaseBdaFormSet, TokenForm, ResellForm
from bda.forms import BaseBdaFormSet, TokenForm
@cof_required
@ -302,13 +303,21 @@ def revente(request, tirage_id):
if not participant.paid:
return render(request, "bda-notpaid.html", {})
if request.POST:
form = ResellForm(participant, request.POST)
if form.is_valid():
return do_resell(request, form)
else:
form = ResellForm(participant)
for attr_id in request.POST.getlist('resell'):
attribution = Attribution.objects.get(id=int(attr_id))
revente = SpectacleRevente(attribution=attribution)
revente.save()
for attr_id in request.POST.getlist('annul'):
revente = SpectacleRevente.objects.get(attribution__pk=attr_id)
revente.delete()
attributions = participant.attribution_set.filter(
spectacle__date__gte=timezone.now)
resell = attributions.filter(spectaclerevente__isnull=False)
no_resell = attributions.filter(spectaclerevente__isnull=True)
return render(request, "bda-revente.html",
{"form": form, 'tirage': tirage})
{"participant": participant, 'tirage': tirage,
"resell": resell, "no_resell": no_resell})
@buro_required