gestion des erreurs et des messages associés

This commit is contained in:
ludo 2016-06-16 15:09:14 +02:00
parent c7c5b5b40f
commit 574aaad745
2 changed files with 27 additions and 5 deletions

View file

@ -2,6 +2,9 @@
{% block realcontent %} {% block realcontent %}
<h2>{{ spectacle }}</h2> <h2>{{ spectacle }}</h2>
{% for message in messages %}
<h3>{{ message }}</h3>
{% endfor %}
<table class='etat-bda' align="center"> <table class='etat-bda' align="center">
<thead> <thead>
<tr> <tr>
@ -36,7 +39,7 @@
{% csrf_token %} {% csrf_token %}
<tr> <tr>
<td></td> <td></td>
<td><input type="text" name="clipper" size=8></td> <td><input type="text" name="username" size=8></td>
<td><select name="nb_places"> <td><select name="nb_places">
<option value=1>1 place</option> <option value=1>1 place</option>
<option value=2>2 places</option> <option value=2>2 places</option>

View file

@ -14,6 +14,7 @@ from django.utils import timezone
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib import messages
from datetime import timedelta from datetime import timedelta
import time import time
@ -319,13 +320,31 @@ def spectacle(request, tirage_id, spectacle_id):
def add_attrib(request, tirage_id, spectacle_id): def add_attrib(request, tirage_id, spectacle_id):
tirage = get_object_or_404(Tirage, id=tirage_id) tirage = get_object_or_404(Tirage, id=tirage_id)
spectacle = get_object_or_404(Spectacle, id = spectacle_id, tirage=tirage) spectacle = get_object_or_404(Spectacle, id = spectacle_id, tirage=tirage)
# TODO : erreur try:
part= tirage.participant_set.get(user__username=request.POST['clipper']) part=tirage.participant_set.get(user__username=request.POST['username'])
attrib = Attribution(participant=part, spectacle=spectacle, given=request.POST['given']) except Participant.DoesNotExist:
messages.add_message(request, messages.ERROR,
u"Erreur : utilisateur %s non trouvé" % request.POST['username'])
return HttpResponseRedirect(reverse('bda-spectacle',
args=(tirage_id, spectacle_id,)))
places_owned = len(spectacle.attribues.filter(participant=part))
if int(request.POST['nb_places'])+places_owned > 2:
messages.add_message(request, messages.ERROR,
"Erreur: on ne peut pas avoir plus de deux places")
return HttpResponseRedirect(reverse('bda-spectacle',
args=(tirage_id, spectacle_id,)))
attrib = Attribution(participant=part, spectacle=spectacle,
given=('given' in request.POST))
attrib.save() attrib.save()
if request.POST['nb_places']==2: if request.POST['nb_places']==2:
attrib.save() attrib.save()
return HttpResponseRedirect(reverse('bda-spectacle', args=(tirage_id, spectacle_id,))) messages.add_message(request, messages.SUCCESS,
"Attribution réussie !")
return HttpResponseRedirect(reverse('bda-spectacle',
args=(tirage_id, spectacle_id,)))
class SpectacleListView(ListView): class SpectacleListView(ListView):
model = Spectacle model = Spectacle