diff --git a/bda/templates/bda/inscription-tirage.html b/bda/templates/bda/inscription-tirage.html
index d43059e7..2e8cb6cf 100644
--- a/bda/templates/bda/inscription-tirage.html
+++ b/bda/templates/bda/inscription-tirage.html
@@ -91,12 +91,6 @@ var django = {
Inscription au tirage au sort du BdA
- {% if success %}
- Votre inscription a été mise à jour avec succès !
- {% endif %}
- {% if stateerror %}
- Impossible d'enregistrer vos modifications: vous avez apporté d'autres modifications entre temps
- {% endif %}
diff --git a/bda/templates/bda/resume-inscription-tirage.html b/bda/templates/bda/resume-inscription-tirage.html
index 2e0531ca..0ad7ec0e 100644
--- a/bda/templates/bda/resume-inscription-tirage.html
+++ b/bda/templates/bda/resume-inscription-tirage.html
@@ -1,8 +1,6 @@
{% extends "base_title.html" %}
{% block realcontent %}
- {{ error_title }}
- {{ error_description }}
{% if choices %}
Vos vœux:
diff --git a/bda/views.py b/bda/views.py
index 3c448f34..ddd2fc90 100644
--- a/bda/views.py
+++ b/bda/views.py
@@ -8,6 +8,7 @@ from datetime import timedelta
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, transaction
from django.db.models import Count, Q, Sum
from django.core import serializers, mail
@@ -17,7 +18,7 @@ from django.core.urlresolvers import reverse
from django.conf import settings
from django.core.mail import send_mail
from django.template import loader
-from django.utils import timezone
+from django.utils import timezone, formats
from django.views.generic.list import ListView
from gestioncof.decorators import cof_required, buro_required
@@ -121,23 +122,37 @@ def places(request, tirage_id):
@cof_required
def inscription(request, tirage_id):
+ """
+ Vue d'inscription à un tirage BdA.
+ - On vérifie qu'on se situe bien entre la date d'ouverture et la date de
+ fermeture des inscriptions.
+ - On vérifie que l'inscription n'a pas été modifiée entre le moment où le
+ client demande le formulaire et le moment où il soumet son inscription
+ (autre session par exemple).
+ """
tirage = get_object_or_404(Tirage, id=tirage_id)
if timezone.now() < tirage.ouverture:
- error_desc = tirage.ouverture.strftime('Ouverture le %d %b %Y à %H:%M')
- return render(request, 'bda/resume-inscription-tirage.html',
- {"error_title": "Le tirage n'est pas encore ouvert !",
- "error_description": error_desc})
+ # Le tirage n'est pas encore ouvert.
+ opening = formats.localize(
+ timezone.template_localtime(tirage.ouverture))
+ messages.error(request, "Le tirage n'est pas encore ouvert : "
+ "ouverture le {:s}".format(opening))
+ return render(request, 'bda/resume-inscription-tirage.html', {})
if timezone.now() > tirage.fermeture:
+ # Le tirage est fermé.
participant, created = Participant.objects.get_or_create(
user=request.user, tirage=tirage)
choices = participant.choixspectacle_set.order_by("priority").all()
+ messages.error(request,
+ " C'est fini : tirage au sort dans la journée !")
return render(request, "bda/resume-inscription-tirage.html",
- {"error_title": "C'est fini !",
- "error_description":
- "Tirage au sort dans la journée !",
- "choices": choices})
+ {"choices": choices})
def formfield_callback(f, **kwargs):
+ """
+ Fonction utilisée par inlineformset_factory ci dessous.
+ Restreint les spectacles proposés aux spectacles du bo tirage.
+ """
if f.name == "spectacle":
kwargs['queryset'] = tirage.spectacle_set
return f.formfield(**kwargs)
@@ -170,13 +185,19 @@ def inscription(request, tirage_id):
total_price += choice.spectacle.price
if choice.double:
total_price += choice.spectacle.price
+ # Messages
+ if success:
+ messages.success(request, "Votre inscription a été mise à jour avec "
+ "succès !")
+ if stateerror:
+ messages.error(request, "Impossible d'enregistrer vos modifications "
+ ": vous avez apporté d'autres modifications "
+ "entre temps.")
return render(request, "bda/inscription-tirage.html",
{"formset": formset,
- "success": success,
"total_price": total_price,
"dbstate": dbstate,
- 'tirage': tirage,
- "stateerror": stateerror})
+ 'tirage': tirage})
def do_tirage(request, tirage_id):
diff --git a/gestioncof/templates/registration_post.html b/gestioncof/templates/gestioncof/registration_post.html
similarity index 100%
rename from gestioncof/templates/registration_post.html
rename to gestioncof/templates/gestioncof/registration_post.html