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')
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)
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
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)
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()
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'),
--- /dev/null
+/* 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 <stephane.raimbault@gmail.com> */
+( 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;
+
+} ) );
{% load telemeta_utils %}
{% load teleforma_tags %}
+{% block extra_javascript %}
+ <script src="/static/teleforma/js/datepicker-fr.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $("[name='birthday']").datepicker({
+ dateFormat:'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ yearRange: "-100:+0"
+ });
+ });
+ </script>
+{% endblock %}
+
+{% block extra_stylesheets %}
+<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+{% endblock %}
+
{% block title %}
<center>{% trans "Pre-registration" %} - {% description %}</center>{% endblock %}
{% for field in form.visible_fields %}
{% if field.name != 'accept' %}
- <tr>
- <th>{{ field.label_tag }}</th>
- <td>
- {{ field.errors }}
- {{ field }}
- <br/>
- <span class="helptext">
+ <tr>
+ <th>{{ field.label_tag }}</th>
+ <td>
+ {{ field.errors }}
+ {{ field }}
+ <br/>
+ <span class="helptext">
{{ field.help_text }}
</span>
- </td>
- </tr>
+ </td>
+ </tr>
{% endif %}
{% endfor %}
{% for field in form.visible_fields %}
{% if field.name == 'accept' %}
- <tr>
- <th>J'accepte les <a href="http://crfpa.pre-barreau.com/tarifs/conditions-generales-dinscription">conditions générales d'inscription</a></th>
- <td>
- {{ field.errors }}
- {{ field }}
- <br/>
- <span class="helptext">
+ <tr>
+ <th>J'accepte les <a
+ href="http://crfpa.pre-barreau.com/tarifs/conditions-generales-dinscription">conditions
+ générales d'inscription</a></th>
+ <td>
+ {{ field.errors }}
+ {{ field }}
+ <br/>
+ <span class="helptext">
{{ field.help_text }}
</span>
- </td>
- </tr>
+ </td>
+ </tr>
{% endif %}
{% endfor %}
</table>