diff --git a/.gitignore b/.gitignore index 2f3d166c..825eed63 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,6 @@ media/ # PyCharm .idea .cache + +# VSCode +.vscode/ \ No newline at end of file diff --git a/bda/templates/bda/inscription-tirage.html b/bda/templates/bda/inscription-tirage.html index 3fd81378..9a39df6f 100644 --- a/bda/templates/bda/inscription-tirage.html +++ b/bda/templates/bda/inscription-tirage.html @@ -52,6 +52,11 @@ var django = { } else { deleteInput.attr("checked", true); } + } else { + // Reset the default values + var selects = $(form).find("select"); + $(selects[0]).val(""); + $(selects[1]).val("1"); } // callback }); diff --git a/bda/views.py b/bda/views.py index 050d6851..9c4c54f7 100644 --- a/bda/views.py +++ b/bda/views.py @@ -10,6 +10,7 @@ from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import login_required from django.core import serializers +from django.core.exceptions import NON_FIELD_ERRORS from django.core.urlresolvers import reverse from django.db import transaction from django.db.models import Count, Prefetch @@ -188,22 +189,38 @@ def inscription(request, tirage_id): ChoixSpectacle, fields=("spectacle", "double_choice", "priority"), formset=InscriptionInlineFormSet, + error_messages={ + NON_FIELD_ERRORS: { + "unique_together": "Vous avez déjà demandé ce voeu plus haut !" + } + }, ) - success = False - stateerror = False if request.method == "POST": # use *this* queryset dbstate = _hash_queryset(participant.choixspectacle_set.all()) if "dbstate" in request.POST and dbstate != request.POST["dbstate"]: - stateerror = True formset = BdaFormSet(instance=participant) + messages.error( + request, + "Impossible d'enregistrer vos modifications " + ": vous avez apporté d'autres modifications " + "entre temps.", + ) else: formset = BdaFormSet(request.POST, instance=participant) if formset.is_valid(): formset.save() - success = True formset = BdaFormSet(instance=participant) + messages.success( + request, "Votre inscription a été mise à jour avec succès !" + ) + else: + messages.error( + request, + "Une erreur s'est produite lors de l'enregistrement de vos vœux. " + "Avez-vous demandé plusieurs fois le même spectacle ?", + ) else: formset = BdaFormSet(instance=participant) # use *this* queryset @@ -214,18 +231,6 @@ 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", diff --git a/cof/settings/common.py b/cof/settings/common.py index ebc7fb2a..4c853a16 100644 --- a/cof/settings/common.py +++ b/cof/settings/common.py @@ -186,7 +186,7 @@ LOGIN_URL = "cof-login" LOGIN_REDIRECT_URL = "home" CAS_SERVER_URL = "https://cas.eleves.ens.fr/" -CAS_VERSION = "3" +CAS_VERSION = "2" CAS_LOGIN_MSG = None CAS_IGNORE_REFERER = True CAS_REDIRECT_URL = "/"