From 667305f4b6d7b28d18a101726e46016a04840a5d Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Fri, 4 Oct 2019 16:09:43 +0200 Subject: [PATCH] Registration form minor changes. All --- teleforma/admin.py | 4 +- teleforma/forms.py | 30 +++++----- .../static/teleforma/js/datepicker-fr.js | 39 +++++++++++++ .../registration/registration_form.html | 56 +++++++++++++------ 4 files changed, 95 insertions(+), 34 deletions(-) create mode 100644 teleforma/static/teleforma/js/datepicker-fr.js diff --git a/teleforma/admin.py b/teleforma/admin.py index b4fd1fdf..e5e86dc6 100644 --- a/teleforma/admin.py +++ b/teleforma/admin.py @@ -307,7 +307,7 @@ class AppointmentAdmin(admin.ModelAdmin): response['Content-Disposition'] = 'attachment; filename=rendezvous.csv' writer = csv.writer(response) - writer.writerow(['date', 'creneau', 'nom', 'prenom', 'iej', 'jury']) + writer.writerow(['date', 'creneau', 'nom', 'prenom', 'email', 'iej', 'jury']) def csv_encode(item): if isinstance(item, unicode): return item.encode('utf-8') @@ -318,7 +318,7 @@ class AppointmentAdmin(admin.ModelAdmin): user = app.student student = user.student.all()[0] - row = [ app.day.strftime('%d/%m/%Y'), app.start, user.last_name, user.first_name, student.iej, app.jury.name ] + row = [ app.day.strftime('%d/%m/%Y'), app.start, user.last_name, user.first_name, user.email, student.iej, app.jury.name ] row = [ csv_encode(col) for col in row ] writer.writerow(row) diff --git a/teleforma/forms.py b/teleforma/forms.py index 05eb516d..9cadc246 100644 --- a/teleforma/forms.py +++ b/teleforma/forms.py @@ -6,7 +6,8 @@ from models.core import Period, CourseType from models.crfpa import IEJ, Training from teleforma.models import * from django.forms import ModelForm, ModelChoiceField, ModelMultipleChoiceField, BooleanField, ImageField, CharField, \ - DateField, FileInput + DateField, FileInput, ChoiceField +from django.forms.extras.widgets import SelectDateWidget from postman.forms import WriteForm as PostmanWriteForm from postman.fields import BasicCommaSeparatedUserField @@ -21,6 +22,11 @@ from itertools import cycle from django.core.files.images import get_image_dimensions from PIL import Image +LEVEL_CHOICES = [ + ('', '---------'), + ('M1', 'M1'), + ('M2', 'M2'), +] def get_unique_username(first_name, last_name): username = slugify(first_name)[0] + '.' + slugify(last_name) @@ -58,35 +64,30 @@ class UserForm(ModelForm): city = CharField(label=_('City'), max_length=255) country = CharField(label=_('Country'), max_length=255) telephone = CharField(label=_('Telephone'), max_length=255) - birthday = DateField(label=_('birthday'), help_text="jj/mm/aaaa") + birthday = DateField(label=_('birthday'), help_text="Au format jj/mm/aaaa") # student portrait = ImageField(widget=FileInput(attrs={'accept': "image/*;capture=camera"}), help_text="Veuillez utiliser une photo au format d'identité.") + level = ChoiceField(label=_('studying level'), choices=LEVEL_CHOICES) iej = ModelChoiceField(label='IEJ', - queryset=IEJ.objects.all(), - required=False) + queryset=IEJ.objects.all()) period = ModelChoiceField(label='Période', queryset=Period.objects.filter(is_open=True, date_inscription_start__lte=datetime.datetime.now(), - date_inscription_end__gte=datetime.datetime.now()), - required=False) + date_inscription_end__gte=datetime.datetime.now())) trainings = ModelMultipleChoiceField(label='Formations', - queryset=Training.objects.filter(available=True), - required=False) + queryset=Training.objects.filter(available=True)) platform_only = BooleanField(label=_('e-learning platform only'), required=False) procedure = ModelChoiceField(label=_('procedure'), help_text="Matière de procédure", - queryset=Course.objects.filter(procedure=True), - required=False) + queryset=Course.objects.filter(procedure=True)) written_speciality = ModelChoiceField(label=_('written speciality'), queryset=Course.objects.filter(written_speciality=True), - help_text="Matière juridique de spécialité", - required=False) + help_text="Matière juridique de spécialité") oral_1 = ModelChoiceField(label=_('oral de langue (option)'), help_text="Matière d’oral de langue (en option)", - queryset=Course.objects.filter(oral_1=True), - required=False) + queryset=Course.objects.filter(oral_1=True)) promo_code = CharField(label=_('promo code'), max_length=100, required=False) # no model captcha = CaptchaField() @@ -143,6 +144,7 @@ class UserForm(ModelForm): profile.save() student = Student(user=user, portrait=data['portrait'], + level=data.get('level'), iej=data.get('iej'), period=data.get('period'), platform_only=data.get('platform_only'), diff --git a/teleforma/static/teleforma/js/datepicker-fr.js b/teleforma/static/teleforma/js/datepicker-fr.js new file mode 100644 index 00000000..9e39fbd6 --- /dev/null +++ b/teleforma/static/teleforma/js/datepicker-fr.js @@ -0,0 +1,39 @@ +/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood{at}iinet.com.au), + Stéphane Nahmani (sholby@sholby.net), + Stéphane Raimbault */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.fr = { + closeText: "Fermer", + prevText: "Précédent", + nextText: "Suivant", + currentText: "Aujourd'hui", + monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre" ], + monthNamesShort: [ "janv.", "févr.", "mars", "avr.", "mai", "juin", + "juil.", "août", "sept.", "oct.", "nov.", "déc." ], + dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ], + dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ], + dayNamesMin: [ "D","L","M","M","J","V","S" ], + weekHeader: "Sem.", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fr ); + +return datepicker.regional.fr; + +} ) ); diff --git a/teleforma/templates/registration/registration_form.html b/teleforma/templates/registration/registration_form.html index 2b4f04c5..79f880b9 100644 --- a/teleforma/templates/registration/registration_form.html +++ b/teleforma/templates/registration/registration_form.html @@ -3,6 +3,24 @@ {% load telemeta_utils %} {% load teleforma_tags %} +{% block extra_javascript %} + + +{% endblock %} + +{% block extra_stylesheets %} + +{% endblock %} + {% block title %}
{% trans "Pre-registration" %} - {% description %}
{% endblock %} @@ -18,32 +36,34 @@ {% for field in form.visible_fields %} {% if field.name != 'accept' %} - - {{ field.label_tag }} - - {{ field.errors }} - {{ field }} -
- + + {{ field.label_tag }} + + {{ field.errors }} + {{ field }} +
+ {{ field.help_text }} - - + + {% endif %} {% endfor %} {% for field in form.visible_fields %} {% if field.name == 'accept' %} - - J'accepte les conditions générales d'inscription - - {{ field.errors }} - {{ field }} -
- + + J'accepte les conditions + générales d'inscription + + {{ field.errors }} + {{ field }} +
+ {{ field.help_text }} - - + + {% endif %} {% endfor %} -- 2.39.5