form.base_fields['video'].queryset = Media.objects.filter(type='webm')
return form
+class ParametersAdmin(admin.ModelAdmin):
+ pass
class NewsItemAdmin(admin.ModelAdmin):
list_filter = ('deleted', 'course', 'creator')
admin.site.register(StudentGroup, StudentGroupAdmin)
admin.site.register(GroupedMessage)
admin.site.register(Home, HomeAdmin)
+admin.site.register(Parameters, ParametersAdmin)
admin.site.register(NewsItem, NewsItemAdmin)
admin.site.register(AppointmentPeriod, AppointmentPeriodAdmin)
# admin.site.register(AppointmentDay, AppointmentDayAdmin)
-from django.forms import ModelForm, ModelChoiceField
+from teleforma.models import *
+from django.forms import ModelForm, ModelChoiceField, BooleanField
from postman.forms import WriteForm as PostmanWriteForm
from postman.fields import BasicCommaSeparatedUserField
-from teleforma.models import *
+
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _
from extra_views import CreateWithInlinesView, UpdateWithInlinesView, InlineFormSet
class UserForm(ModelForm):
captcha = CaptchaField()
+ accept = BooleanField()
class Meta:
model = User
- fields = ['first_name', 'last_name', 'email', ]
+ fields = ['first_name', 'last_name', 'email', 'accept']
RegistrationForm.base_fields.update(UserForm.base_fields)
exclude = ['user', 'trainings', 'options']
-
RegistrationForm.base_fields.update(StudentForm.base_fields)
model = Student
can_delete = False
- fields = ['level', 'iej', 'period', 'training', 'platform_only', 'procedure',
+ fields = ['portrait', 'level', 'iej', 'period', 'training', 'platform_only', 'procedure',
'written_speciality', 'oral_1', 'promo_code']
+
def get_factory_kwargs(self):
kwargs = super(StudentInline, self).get_factory_kwargs()
formfield = field.formfield(**kwargs)
if field.name == 'period':
formfield.queryset = Period.objects.filter(is_open=True)
+ elif field.name == 'portrait':
+ formfield.widget.attrs.update(accept="image/*;capture=camera")
return formfield
kwargs.update({
date_exam_end = models.DateTimeField(_("date de fin d'examens"), null=True, blank=True)
nb_script = models.IntegerField(_("nombre maximal de copies"), null=True, blank=True)
date_close_accounts = models.DateField("date de fermeture des comptes étudiants", null = True, blank = True)
+ date_inscription_start = models.DateField("date d'ouverture des inscriptions", null = True, blank = True)
+ date_inscription_end = models.DateField("date de fermeture des inscriptions", null=True, blank=True)
def __unicode__(self):
return self.name
"A student profile"
user = models.ForeignKey(User, related_name='student', verbose_name=_('user'), unique=True)
+ portrait = models.ImageField(max_length=500, upload_to='portraits/', blank=False, null=True)
iej = models.ForeignKey('IEJ', related_name='student', verbose_name=_('iej'),
blank=True, null=True, on_delete=models.SET_NULL)
trainings = models.ManyToManyField('Training', related_name='student_trainings', verbose_name=_('trainings'),
fascicule = models.BooleanField(_('envoi des fascicules'), blank=True,
default=False)
-
+
+
def __unicode__(self):
try:
return self.user.last_name + ' ' + self.user.first_name
def __unicode__(self):
return self.title
+class Parameters(models.Model):
+ """ used to store various unique parameters """
+
+ inscription_text = HTMLField("Texte d'inscription", blank=True)
+ class Meta(MetaCore):
+ verbose_name = "Paramètres"
+ verbose_name_plural = "Paramètres"
+
+ def save(self, *args, **kwargs):
+ self.__class__.objects.exclude(id=self.id).delete()
+ super(Parameters, self).save(*args, **kwargs)
+
+ @classmethod
+ def load(cls):
+ try:
+ return cls.objects.get()
+ except cls.DoesNotExist:
+ return cls()
class NewsItem(models.Model):
{% load telemeta_utils %}
{% load teleforma_tags %}
-{% block title %}<center>{% trans "Pre-registration" %} - {% description %}</center>{% endblock %}
+{% block title %}
+ <center>{% trans "Pre-registration" %} - {% description %}</center>{% endblock %}
{% block content %}
-<center>
- <form class="register" id="_registerForm" method="post" action="" enctype="multipart/form-data" data-ajax="false">{% csrf_token %}
- <h2><span class="error">Tous les champs sont requis</span></h2>
- <table>
- {{ form }}
- {% for formset in inlines %}
- {{ formset.management_form }}
- {% for form in formset %}
- {{ form }}
- {% endfor %}
- {% endfor %}
- </table>
- <br><br>
- <a href="#" class="component_icon button" id="action_green" onclick="$('#_registerForm').submit();"><img src="/static/telemeta/images/next.png" alt="" style="vertical-align:middle" /> {% trans "Submit" %}</a>
- </form>
-</center>
-<script>
- $(document).ready(function(){
- id = $("#id_student-0-period").val();
- training_id = $("#id_student-0-training").val();
+ <center>
+ <form class="register" id="_registerForm" method="post" action="" enctype="multipart/form-data"
+ data-ajax="false">{% csrf_token %}
- if(!id){
- $('#id_student-0-training').html('<option value="" selected="selected">---------</option>');
- }else{
- $.ajax({
- url: "/update-training/"+id+"/",
- data: { "period_id": id, "training_id": training_id},
- dataType:"html",
- type: "post",
- success: function(data){
- $('#id_student-0-training').html(data);
- }
- });
- }
+ {{ introduction|safe }}
- $("#id_student-0-period").change(function(){
- period_id = this.value
- if(!period_id){
- $('#id_student-0-training').html('<option value="" selected="selected">---------</option>')
- }else{
- $.ajax({
- url: "/update-training/"+period_id+"/",
- data: { "period_id": period_id },
- dataType:"html",
- type: "post",
- success: function(data){
- $('#id_student-0-training').html(data);
- }
- });
- }
- });
- });
-</script>
-<style>
- select {
- width: 222px;
- }
-</style>
+ <h2><span class="error">Tous les champs sont requis</span></h2>
+ <table>
+
+ {% for field in form.visible_fields %}
+ {% if field.name != 'accept' %}
+ <tr>
+ <th>{{ field.label_tag }}</th>
+ <td>
+ {{ field.errors }}
+ {{ field }}
+ <br/>
+ <span class="helptext">
+ {{ field.help_text }}
+ </span>
+ </td>
+ </tr>
+ {% endif %}
+ {% endfor %}
+ {% for formset in inlines %}
+ {{ formset.management_form }}
+ {% for form in formset %}
+ {{ form }}
+ {% endfor %}
+ {% 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">
+ {{ field.help_text }}
+ </span>
+ </td>
+ </tr>
+ {% endif %}
+ {% endfor %}
+ </table>
+ <br><br>
+ <a href="#" class="component_icon button" id="action_green" onclick="$('#_registerForm').submit();"><img
+ src="/static/telemeta/images/next.png" alt=""
+ style="vertical-align:middle"/> {% trans "Submit" %}</a>
+ </form>
+ </center>
+ <script>
+ $(document).ready(function () {
+ id = $("#id_student-0-period").val();
+ training_id = $("#id_student-0-training").val();
+
+ if (!id) {
+ $('#id_student-0-training').html('<option value="" selected="selected">---------</option>');
+ } else {
+ $.ajax({
+ url: "/update-training/" + id + "/",
+ data: {"period_id": id, "training_id": training_id},
+ dataType: "html",
+ type: "post",
+ success: function (data) {
+ $('#id_student-0-training').html(data);
+ }
+ });
+ }
+
+ $("#id_student-0-period").change(function () {
+ period_id = this.value
+ if (!period_id) {
+ $('#id_student-0-training').html('<option value="" selected="selected">---------</option>')
+ } else {
+ $.ajax({
+ url: "/update-training/" + period_id + "/",
+ data: {"period_id": period_id},
+ dataType: "html",
+ type: "post",
+ success: function (data) {
+ $('#id_student-0-training').html(data);
+ }
+ });
+ }
+ });
+ });
+ </script>
+ <style>
+ select {
+ width: 222px;
+ }
+ </style>
{% endblock %}
<div class="infos" style="width: 55%">
<dl class="listing">
+ <img src="{{ usr.portrait.url }}" />
<dt>{% trans "First Name" %}</dt><dd>{{ usr.first_name }}</dd>
<dt>{% trans "Last Name" %}</dt><dd>{{ usr.last_name }}</dd>
<dt>{% trans "Username" %}</dt><dd>{{ usr.username }}</dd>
# knowledge of the CeCILL license and that you accept its terms.
#
# Authors: Guillaume Pellerin <yomguy@parisson.com>
+from teleforma.models.crfpa import Parameters
from teleforma.models.core import Period
from teleforma.views.core import *
from teleforma.forms import WriteForm
form_class = UserForm
inlines = [ProfileInline, StudentInline]
+ def get_context_data(self, **kwargs):
+ context = super(UserAddView, self).get_context_data(**kwargs)
+ parameters = Parameters.load()
+ context['introduction'] = parameters.inscription_text
+ return context
+
+
def forms_valid(self, form, inlines):
messages.info(self.request, _("You have successfully register your account."))
first_name = form.cleaned_data['first_name']
if not student.oral_2:
student.oral_2 = Course.objects.get(code='X')
student.save()
-
profile = user.profile.all()[0]
if profile.city:
profile.city = profile.city.upper()