Commit fd4e48f5 authored by Maxime Bombar's avatar Maxime Bombar

Rajoute la date de naissance au formulaire wei1a

parent 02c7b2e3
......@@ -188,10 +188,10 @@ class InscriptionForm(CompteRelatedForm):
"""
#: Champs qui apparaîtront en premier
PRIORITY_FIELDS = ["normalien", "wei", "override_adh"]
#: Association champ -> droit nécessaire pour le modifier
ACL_NEEDED = {"override_adh" : u"adhesions_admin"}
wei = forms.BooleanField(label=_(u"Inscription au WEI"), required=False)
override_adh = FrenchFloatField(label=_(u"Montant de l'adhésion"), widget=forms.TextInput(attrs={"autocomplete": "off"}))
annee = forms.IntegerField(label=_(u"Année d'inscription (année courante si non précisée)"), required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
......@@ -208,7 +208,7 @@ class InscriptionForm(CompteRelatedForm):
pay_nom = forms.CharField(label=_(u"Nom¹ (pour le paiement)"), required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
pay_prenom = forms.CharField(label=_(u"Prénom¹ (pour le paiement)"), required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
pay_banque = forms.CharField(label=_(u"Banque¹ (pour le paiement)"), required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
def __init__(self, *args, **kwargs):
acls = kwargs.get("full_rights", [])
if acls:
......@@ -221,7 +221,7 @@ class InscriptionForm(CompteRelatedForm):
# Certains champs doivent recalculer le montant de l'adhésion en cas de modification
for fieldname in ["normalien", "wei"]:
self.fields[fieldname].widget.attrs["onChange"] = "javascript:update_montant_adhesion();return(false);"
def clean(self):
"""des valeurs par défaut"""
out = super(InscriptionForm, self).clean()
......@@ -314,7 +314,7 @@ class MyDateField(forms.CharField):
"""Un champ personnalisé de détection de date.
Renvoie un objet datetime.date"""
description = u"Une date (assez souple sur le format d'entrée)"
def to_python(self, raw_value):
"""Conversion de la valeur texte en objet python."""
raw_value = super(MyDateField, self).to_python(raw_value)
......@@ -357,7 +357,7 @@ class MyTimeField(forms.CharField):
"""Un champ personnalisé de détection d'heure.
Renvoie un objet datetime.time"""
description = u"Une heure (assez souple sur le format d'entrée)"
def to_python(self, raw_value):
"""Conversion de la valeur texte en objet python."""
raw_value = super(MyTimeField, self).to_python(raw_value)
......@@ -403,11 +403,11 @@ class ActiviteForm(BootstrapForm):
del out["debut_date"], out["debut_time"], out["fin_date"], out["fin_time"]
out["debut"], out["fin"] = debut.strftime("%Y-%m-%d %H:%M:%S"), fin.strftime("%Y-%m-%d %H:%M:%S")
return out
def __init__(self, *args, **kwargs):
"""Pour initialiser le formulaire, on doit bidouiller un peu pour avoir
debut_date, debut_time, fin_date et fin_time dans initial.
Gère aussi les subtilités du champ listeimprimee.
"""
if 'initial' in kwargs.keys():
......@@ -774,12 +774,20 @@ Q_MOTS = (
('21', _(u'banquet')),
)
class DateInput(forms.DateInput):
input_type = 'date'
class WEI1AForm(BootstrapForm):
"""
Formulaire d'inscription au WEI pour 1A
"""
nom = forms.CharField(max_length=100, label=_(u"Nom"))
prenom = forms.CharField(max_length=100, label=_(u"Prénom"))
date_naissance = forms.DateField(
widget=DateInput(),
required=True,
)
genre = forms.ChoiceField(label=_(u"Genre"), choices=[('', ''),
('M', _(u'Masculin')),
('F', _(u'Féminin')),
......
......@@ -36,6 +36,7 @@ import os
import shutil
import base64
import functools
from datetime import datetime, date
# imports from Django
from django.http import HttpResponse, HttpResponseRedirect
......@@ -648,3 +649,13 @@ def _get_dept_code(dept):
code = 'EXT'
return code
def json_serialize(obj):
"""
Serialize un datetime en JSON
"""
if isinstance(obj, (datetime, date)):
return obj.isoformat()
else:
raise TypeError ("Je ne sais pas comment serializer %s en JSON. Merci d'aller modifier la fonction utilities.json_serialize" % type(obj))
......@@ -1638,6 +1638,9 @@ def WEI1A(request, sock, kwargs):
if form.is_valid():
request.session["wei1A2019"]["nom"] = form.cleaned_data["nom"]
request.session["wei1A2019"]["prenom"] = form.cleaned_data["prenom"]
request.session["wei1A2019"]["date_naissance"] = json.dumps(
form.cleaned_data["date_naissance"],
default=utilities.json_serialize)
request.session["wei1A2019"]["genre"] = form.cleaned_data["genre"]
request.session["wei1A2019"]["adresse"] = form.cleaned_data["adresse"]
request.session["wei1A2019"]["mail"] = form.cleaned_data["mail"]
......@@ -1683,7 +1686,7 @@ def WEI1Aalgo(request, sock, kwargs):
"""
Formulaire WEI pour les 1A.
"""
variables = {}
# On récupère les paramètres habituels de l'appli WEI
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment