]> git.parisson.com Git - teleforma.git/commitdiff
add corrector registration form
authorYoan Le Clanche <yoanl@pilotsystems.net>
Thu, 23 Jan 2020 16:16:30 +0000 (17:16 +0100)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Thu, 23 Jan 2020 16:16:30 +0000 (17:16 +0100)
teleforma/admin.py
teleforma/forms.py
teleforma/migrations/0119_auto__add_corrector.py [new file with mode: 0644]
teleforma/migrations/0120_auto__add_field_profile_birthday_place__add_field_profile_ss_number.py [new file with mode: 0644]
teleforma/models/crfpa.py
teleforma/templates/registration/registration_corrector_complete.html [new file with mode: 0644]
teleforma/templates/registration/registration_corrector_pdf.html [new file with mode: 0644]
teleforma/templates/registration/registration_form.html
teleforma/templates/registration/registration_pdf.html
teleforma/urls.py
teleforma/views/crfpa.py

index e5e86dc61db1f4b46b0232e6792ae0fd3d79bfbf..b230ce32c2f3bc69e367e76c0ecd64c4d385c402 100644 (file)
@@ -156,6 +156,23 @@ class StudentAdmin(admin.ModelAdmin):
     add_to_group.short_description = "Ajouter au groupe"
 
 
+class CorrectorAdmin(admin.ModelAdmin):
+    model = Corrector
+    list_filter = ['user__is_active', 'period']
+    list_display = ['__unicode__', 'period', 'pay_status',
+                    'date_registered']
+    actions = ['export_xls']
+
+    def export_xls(self, request, queryset):
+        book = CorrectorXLSBook(correctors = queryset)
+        book.write()
+        response = HttpResponse(mimetype="application/vnd.ms-excel")
+        response['Content-Disposition'] = 'attachment; filename=correcteurs.xls'
+        book.book.save(response)
+        return response
+
+    export_xls.short_description = "Export vers XLS"
+
 class ProfessorProfileInline(admin.StackedInline):
     model = Professor
     filter_horizontal = ['courses']
@@ -345,6 +362,7 @@ admin.site.register(CourseType)
 admin.site.register(StreamingServer)
 admin.site.register(LiveStream)
 admin.site.register(Student, StudentAdmin)
+admin.site.register(Corrector, CorrectorAdmin)
 admin.site.register(Professor, ProfessorAdmin)
 admin.site.register(StudentGroup, StudentGroupAdmin)
 admin.site.register(GroupedMessage)
index 7c08593c129bc9312009cb32d2768fd490208cdc..cb3633e554ff285118b1c5d527dff0ec2d701333 100644 (file)
@@ -3,7 +3,7 @@ from StringIO import StringIO
 
 from django.core.files.uploadedfile import SimpleUploadedFile
 from models.core import Period, CourseType
-from models.crfpa import IEJ, Training
+from models.crfpa import IEJ, Training, PAY_STATUS_CHOICES
 from teleforma.models import *
 from django.forms import ModelForm, ModelChoiceField, ModelMultipleChoiceField, BooleanField, ImageField, CharField, \
     DateField, FileInput, ChoiceField
@@ -102,7 +102,7 @@ class UserForm(ModelForm):
                                  required=True)
 
     fascicule = forms.ChoiceField(choices = TRUE_FALSE_CHOICES,
-                                  label='Envoi des fascicules',
+                                  label='Envoi postal des fascicules',
                                   required=False,
                                   widget=forms.Select())
     
@@ -187,71 +187,74 @@ class UserForm(ModelForm):
         student.trainings.add(data.get('training', None))
         return user
 
+class CorrectorForm(ModelForm):
+    # profile
+    address = CharField(label=_('Address'), max_length=255)
+    address_detail = CharField(label=_('Address detail'), max_length=255, required=False)
+    postal_code = CharField(label=_('Postal code'), max_length=255)
+    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="Au format jj/mm/aaaa")
+    birthday_place =  CharField(label='Lieu de naissance', max_length=255)
+    ss_number = CharField(label='N° de sécurité sociale',
+                                 max_length=15)
+    # corrector
+    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()))
+    pay_status = forms.ChoiceField(choices = PAY_STATUS_CHOICES,
+                                      label='Statut',
+                                      widget=forms.Select())
+    # no model
+    captcha = CaptchaField()
+    accept = BooleanField()
 
-# RegistrationForm.base_fields.update(UserForm.base_fields)
-#
-#
-# class ProfileForm(ModelForm):
-#     class Meta:
-#         model = Profile
-#         exclude = ['user', 'wifi_login', 'wifi_pass', 'language', 'expiration_date',
-#                     'init_password', ]
-#
-# RegistrationForm.base_fields.update(ProfileForm.base_fields)
-#
-#
-# class StudentForm(ModelForm):
-#
-#     class Meta:
-#         model = Student
-#         exclude = ['user', 'trainings', 'options']
-#
+    class Meta:
+        model = User
+        fields = ['first_name', 'last_name', 'email']
 
 
-#
-# RegistrationForm.base_fields.update(StudentForm.base_fields)
-#
-#
-# class CustomRegistrationForm(RegistrationForm):
-#
-#     def save(self, profile_callback=None):
-#         user = super(CustomRegistrationForm, self).save(profile_callback=None)
-#         profile, c = Profile.objects.get_or_create(user=user, \
-#             address=self.cleaned_data['address'], \
-#             telephone=self.cleaned_data['telephone'])
-#
-#
-# class ProfileInline(InlineFormSet):
-#
-#     model = Profile
-#     can_delete = False
-#     exclude = ['wifi_login', 'wifi_pass', 'language', 'expiration_date',
-#                     'init_password']
-#
-#
-# class StudentInline(InlineFormSet):
-#
-#     model = Student
-#     can_delete = False
-#     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()
-#
-#         def get_field_qs(field, **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")
-#                 # formfield.widget.required = True
-#             return formfield
-#
-#         kwargs.update({
-#             'formfield_callback': get_field_qs
-#         })
-#         return kwargs
+    def __init__(self, *args, **kwargs):
+        super(CorrectorForm, self).__init__(*args, **kwargs)
+        self.fields['first_name'].required = True
+        self.fields['last_name'].required = True
+        self.fields['email'].required = True
+        self.user_fields = ['first_name', 'last_name', 'email', 'address', 'address_detail', 'postal_code', 'city', 'country', 'telephone', 'birthday', 'birthday_place', 'ss_number']
+        self.training_fields = ['period', 'pay_status']
+
+    def save(self, commit=True):
+
+        data = self.cleaned_data
+        user = super(CorrectorForm, self).save(commit=False)
+        username = get_unique_username(data['first_name'], data['last_name'])
+        self.username = username
+        user.username = username
+        user.last_name = data['last_name'].upper()
+        user.first_name = data['first_name'].capitalize()
+        user.is_active = False
+        if commit:
+            user.save()
+        profile = Profile(user=user,
+                          address=data['address'],
+                          address_detail=data.get('address_detail'),
+                          postal_code=data['postal_code'],
+                          city=data['city'],
+                          country=data['country'],
+                          telephone=data['telephone'],
+                          birthday=data['birthday'],
+                          birthday_place=data['birthday_place'],
+                          ss_number=data['ss_number'],
+                          )
+        if commit:
+            profile.save()
+        corector = Corrector(user=user,
+                          period=data.get('period'),
+                          pay_status=data.get('pay_status'),
+                          )
+        corector.save()
+        return user
 
 
 class NewsItemForm(ModelForm):
diff --git a/teleforma/migrations/0119_auto__add_corrector.py b/teleforma/migrations/0119_auto__add_corrector.py
new file mode 100644 (file)
index 0000000..384ae72
--- /dev/null
@@ -0,0 +1,684 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding model 'Corrector'
+        db.create_table('teleforma_corrector', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='corrector', unique=True, to=orm['auth.User'])),
+            ('period', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='corrector', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Period'])),
+            ('pay_status', self.gf('django.db.models.fields.CharField')(default='honoraire', max_length=64, null=True, blank=True)),
+            ('date_registered', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, null=True, blank=True)),
+        ))
+        db.send_create_signal('teleforma', ['Corrector'])
+
+
+    def backwards(self, orm):
+        # Deleting model 'Corrector'
+        db.delete_table('teleforma_corrector')
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'quiz.category': {
+            'Meta': {'object_name': 'Category'},
+            'category': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'quiz.quiz': {
+            'Meta': {'object_name': 'Quiz'},
+            'answers_at_end': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['quiz.Category']", 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'draft': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'exam_paper': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'fail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'max_questions': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'pass_mark': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'blank': 'True'}),
+            'random_order': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'single_attempt': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'success_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
+            'url': ('django.db.models.fields.SlugField', [], {'max_length': '60'})
+        },
+        'teleforma.aestudent': {
+            'Meta': {'ordering': "['user__last_name']", 'object_name': 'AEStudent', 'db_table': "'teleforma_ae_student'"},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'user': ('telemeta.models.core.ForeignKey', [], {'related_name': "'ae_student'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.appointment': {
+            'Meta': {'unique_together': "(('slot', 'jury', 'slot_nb'),)", 'object_name': 'Appointment'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'jury': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.AppointmentJury']"}),
+            'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['teleforma.AppointmentSlot']"}),
+            'slot_nb': ('django.db.models.fields.IntegerField', [], {}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['auth.User']"})
+        },
+        'teleforma.appointmentjury': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentJury', 'db_table': "'teleforma_appointment_jury'"},
+            'address': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jurys'", 'null': 'True', 'to': "orm['teleforma.AppointmentSlot']"})
+        },
+        'teleforma.appointmentperiod': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentPeriod', 'db_table': "'teleforma_appointment_period'"},
+            'appointment_mail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'appointment_slot_size': ('django.db.models.fields.IntegerField', [], {'default': '40'}),
+            'book_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'cancel_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'enable_appointment': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'end': ('django.db.models.fields.DateField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'appointment_periods'", 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'start': ('django.db.models.fields.DateField', [], {})
+        },
+        'teleforma.appointmentslot': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentSlot', 'db_table': "'teleforma_appointment_slot'"},
+            'appointment_period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'slots'", 'null': 'True', 'to': "orm['teleforma.AppointmentPeriod']"}),
+            'date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nb': ('django.db.models.fields.IntegerField', [], {}),
+            'start': ('django.db.models.fields.TimeField', [], {})
+        },
+        'teleforma.conference': {
+            'Meta': {'ordering': "['-date_begin']", 'object_name': 'Conference'},
+            'comment': ('teleforma.fields.ShortTextField', [], {'max_length': '255', 'blank': 'True'}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.CourseType']"}),
+            'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'professor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Professor']"}),
+            'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}),
+            'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+            'status': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'web_class_group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conferences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.WebClassGroup']"})
+        },
+        'teleforma.corrector': {
+            'Meta': {'ordering': "['user__last_name', '-date_registered']", 'object_name': 'Corrector'},
+            'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'pay_status': ('django.db.models.fields.CharField', [], {'default': "'honoraire'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'corrector'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.course': {
+            'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'has_exam_scripts': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_professor_sent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Professor']", 'null': 'True', 'blank': 'True'}),
+            'magistral': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_1': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_2': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'courses'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'procedure': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'quiz': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['quiz.Quiz']", 'null': 'True', 'blank': 'True'}),
+            'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title_tweeter': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'written_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.coursegroup': {
+            'Meta': {'object_name': 'CourseGroup', 'db_table': "'teleforma_course_group'"},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'course_groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.coursetype': {
+            'Meta': {'object_name': 'CourseType', 'db_table': "'teleforma_course_type'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.department': {
+            'Meta': {'object_name': 'Department'},
+            'default_period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'departments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+        },
+        'teleforma.discount': {
+            'Meta': {'object_name': 'Discount', 'db_table': "'teleforma_discounts'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discounts'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.document': {
+            'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
+            'annal_year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'document'", 'blank': 'True', 'to': "orm['teleforma.CourseType']"}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+            'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'documents'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.DocumentType']"}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.documentsimple': {
+            'Meta': {'ordering': "['-date_added']", 'object_name': 'DocumentSimple', 'db_table': "'teleforma_document_simple'"},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.documenttype': {
+            'Meta': {'ordering': "['number']", 'object_name': 'DocumentType', 'db_table': "'teleforma_document_type'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'for_corrector': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'teleforma.groupedmessage': {
+            'Meta': {'object_name': 'GroupedMessage', 'db_table': "'teleforma_grouped_messages'"},
+            'date_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.StudentGroup']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'message': ('django.db.models.fields.TextField', [], {}),
+            'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+            'sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'subject': ('django.db.models.fields.CharField', [], {'max_length': '119'}),
+            'to_send': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.home': {
+            'Meta': {'object_name': 'Home'},
+            'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'modified_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'home_texts'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'text': ('tinymce.models.HTMLField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'default': '"Page d\'accueil"', 'max_length': '255'}),
+            'video': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Media']", 'null': 'True', 'blank': 'True'})
+        },
+        'teleforma.iej': {
+            'Meta': {'ordering': "['name']", 'object_name': 'IEJ'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.livestream': {
+            'Meta': {'object_name': 'LiveStream', 'db_table': "'teleforma_live_stream'"},
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'livestream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'server': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'livestream'", 'to': "orm['teleforma.StreamingServer']"}),
+            'stream_type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.media': {
+            'Meta': {'ordering': "['-date_modified', '-conference__session']", 'object_name': 'Media'},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.CourseType']"}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.newsitem': {
+            'Meta': {'object_name': 'NewsItem'},
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['teleforma.Course']"}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['auth.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+            'text': ('tinymce.models.HTMLField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.optionalfee': {
+            'Meta': {'object_name': 'OptionalFee', 'db_table': "'teleforma_optional_fees'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'optional_fees'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.organization': {
+            'Meta': {'object_name': 'Organization'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.parameters': {
+            'Meta': {'object_name': 'Parameters'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'inscription_text': ('tinymce.models.HTMLField', [], {'blank': 'True'})
+        },
+        'teleforma.payback': {
+            'Meta': {'object_name': 'Payback', 'db_table': "'teleforma_paybacks'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paybacks'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.payment': {
+            'Meta': {'ordering': "['scheduled', 'month']", 'object_name': 'Payment', 'db_table': "'teleforma_payments'"},
+            'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'month': ('django.db.models.fields.IntegerField', [], {'default': '1', 'null': 'True', 'blank': 'True'}),
+            'online_paid': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'scheduled': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'payments'", 'to': "orm['teleforma.Student']"}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64'}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.period': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+            'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_close_accounts': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_exam_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inscription_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inscription_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'department': ('telemeta.models.core.ForeignKey', [], {'default': 'None', 'related_name': "'period'", 'null': 'True', 'blank': 'True', 'to': "orm['teleforma.Department']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_open': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'message_local': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'message_platform': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nb_script': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
+        },
+        'teleforma.professor': {
+            'Meta': {'ordering': "['user__last_name']", 'object_name': 'Professor'},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.profile': {
+            'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"},
+            'address': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'address_detail': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'birthday': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
+            'wifi_login': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'wifi_pass': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'teleforma.room': {
+            'Meta': {'object_name': 'Room'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"})
+        },
+        'teleforma.streamingserver': {
+            'Meta': {'object_name': 'StreamingServer', 'db_table': "'teleforma_streaming_server'"},
+            'admin_password': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'port': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'source_password': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '32'})
+        },
+        'teleforma.student': {
+            'Meta': {'ordering': "['user__last_name', '-date_subscribed']", 'object_name': 'Student'},
+            'application_fees': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'balance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'confirmation_sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_subscribed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'fascicule': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+            'is_subscribed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'level': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'options': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'options_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_1_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_2_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_speciality_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'payment_schedule': ('django.db.models.fields.CharField', [], {'default': "'split'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'payment_type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'portrait': ('django.db.models.fields.files.ImageField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+            'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'procedure_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'promo_code': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'subscription_fees': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_training'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+            'trainings': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'student_trainings'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Training']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}),
+            'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'written_speciality_2students'", 'null': 'True', 'to': "orm['teleforma.Course']"})
+        },
+        'teleforma.studentgroup': {
+            'Meta': {'object_name': 'StudentGroup', 'db_table': "'teleforma_student_groups'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'students': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Student']"})
+        },
+        'teleforma.training': {
+            'Meta': {'object_name': 'Training'},
+            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'magistral': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_magistral'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'obligation': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_obligation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'options': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_options'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_1': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_1'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_2': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_2'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'procedure': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_procedure'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'synthesis_note': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_synthesis_note'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'written_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_written_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"})
+        },
+        'teleforma.webclassgroup': {
+            'Meta': {'ordering': "['name']", 'object_name': 'WebClassGroup'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iejs': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'web_class_group'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.IEJ']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'telemeta.acquisitionmode': {
+            'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.adconversion': {
+            'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.ethnicgroup': {
+            'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.genericstyle': {
+            'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.language': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"},
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+            'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+            'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'})
+        },
+        'telemeta.legalright': {
+            'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.location': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"},
+            'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}),
+            'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}),
+            'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'})
+        },
+        'telemeta.locationtype': {
+            'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"},
+            'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'max_length': '150'})
+        },
+        'telemeta.mediacollection': {
+            'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"},
+            'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}),
+            'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}),
+            'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+            'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+            'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}),
+            'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}),
+            'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}),
+            'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}),
+            'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}),
+            'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}),
+            'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+            'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}),
+            'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}),
+            'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}),
+            'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}),
+            'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}),
+            'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'})
+        },
+        'telemeta.mediaitem': {
+            'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"},
+            'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+            'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+            'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}),
+            'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}),
+            'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}),
+            'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'depositor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'digitalist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'digitization_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}),
+            'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}),
+            'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}),
+            'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'mimetype': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+            'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'organization': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Organization']", 'null': 'True', 'blank': 'True'}),
+            'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+            'publishing_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recordist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Rights']", 'null': 'True', 'blank': 'True'}),
+            'scientist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'summary': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'topic': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Topic']", 'null': 'True', 'blank': 'True'}),
+            'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '512', 'blank': 'True'}),
+            'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"})
+        },
+        'telemeta.metadataauthor': {
+            'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.metadatawriter': {
+            'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.organization': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Organization', 'db_table': "'organization'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.physicalformat': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.publisher': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.publishercollection': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}),
+            'value': ('telemeta.models.core.CharField', [], {'max_length': '250'})
+        },
+        'telemeta.publishingstatus': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.recordingcontext': {
+            'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.rights': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Rights', 'db_table': "'rights'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.topic': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Topic', 'db_table': "'topic'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.vernacularstyle': {
+            'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        }
+    }
+
+    complete_apps = ['teleforma']
\ No newline at end of file
diff --git a/teleforma/migrations/0120_auto__add_field_profile_birthday_place__add_field_profile_ss_number.py b/teleforma/migrations/0120_auto__add_field_profile_birthday_place__add_field_profile_ss_number.py
new file mode 100644 (file)
index 0000000..ba336b2
--- /dev/null
@@ -0,0 +1,689 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding field 'Profile.birthday_place'
+        db.add_column('teleforma_profiles', 'birthday_place',
+                      self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True),
+                      keep_default=False)
+
+        # Adding field 'Profile.ss_number'
+        db.add_column('teleforma_profiles', 'ss_number',
+                      self.gf('django.db.models.fields.CharField')(max_length=15, null=True, blank=True),
+                      keep_default=False)
+
+
+    def backwards(self, orm):
+        # Deleting field 'Profile.birthday_place'
+        db.delete_column('teleforma_profiles', 'birthday_place')
+
+        # Deleting field 'Profile.ss_number'
+        db.delete_column('teleforma_profiles', 'ss_number')
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'quiz.category': {
+            'Meta': {'object_name': 'Category'},
+            'category': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'quiz.quiz': {
+            'Meta': {'object_name': 'Quiz'},
+            'answers_at_end': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['quiz.Category']", 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'draft': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'exam_paper': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'fail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'max_questions': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'pass_mark': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'blank': 'True'}),
+            'random_order': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'single_attempt': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'success_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
+            'url': ('django.db.models.fields.SlugField', [], {'max_length': '60'})
+        },
+        'teleforma.aestudent': {
+            'Meta': {'ordering': "['user__last_name']", 'object_name': 'AEStudent', 'db_table': "'teleforma_ae_student'"},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'user': ('telemeta.models.core.ForeignKey', [], {'related_name': "'ae_student'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.appointment': {
+            'Meta': {'unique_together': "(('slot', 'jury', 'slot_nb'),)", 'object_name': 'Appointment'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'jury': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.AppointmentJury']"}),
+            'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['teleforma.AppointmentSlot']"}),
+            'slot_nb': ('django.db.models.fields.IntegerField', [], {}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['auth.User']"})
+        },
+        'teleforma.appointmentjury': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentJury', 'db_table': "'teleforma_appointment_jury'"},
+            'address': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jurys'", 'null': 'True', 'to': "orm['teleforma.AppointmentSlot']"})
+        },
+        'teleforma.appointmentperiod': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentPeriod', 'db_table': "'teleforma_appointment_period'"},
+            'appointment_mail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'appointment_slot_size': ('django.db.models.fields.IntegerField', [], {'default': '40'}),
+            'book_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'cancel_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'enable_appointment': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'end': ('django.db.models.fields.DateField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'appointment_periods'", 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'start': ('django.db.models.fields.DateField', [], {})
+        },
+        'teleforma.appointmentslot': {
+            'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentSlot', 'db_table': "'teleforma_appointment_slot'"},
+            'appointment_period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'slots'", 'null': 'True', 'to': "orm['teleforma.AppointmentPeriod']"}),
+            'date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nb': ('django.db.models.fields.IntegerField', [], {}),
+            'start': ('django.db.models.fields.TimeField', [], {})
+        },
+        'teleforma.conference': {
+            'Meta': {'ordering': "['-date_begin']", 'object_name': 'Conference'},
+            'comment': ('teleforma.fields.ShortTextField', [], {'max_length': '255', 'blank': 'True'}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.CourseType']"}),
+            'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'professor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Professor']"}),
+            'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}),
+            'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+            'status': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+            'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'web_class_group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conferences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.WebClassGroup']"})
+        },
+        'teleforma.corrector': {
+            'Meta': {'ordering': "['user__last_name', '-date_registered']", 'object_name': 'Corrector'},
+            'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'pay_status': ('django.db.models.fields.CharField', [], {'default': "'honoraire'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'corrector'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.course': {
+            'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'has_exam_scripts': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_professor_sent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Professor']", 'null': 'True', 'blank': 'True'}),
+            'magistral': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_1': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_2': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'oral_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'courses'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'procedure': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'quiz': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['quiz.Quiz']", 'null': 'True', 'blank': 'True'}),
+            'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title_tweeter': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'written_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.coursegroup': {
+            'Meta': {'object_name': 'CourseGroup', 'db_table': "'teleforma_course_group'"},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'course_groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.coursetype': {
+            'Meta': {'object_name': 'CourseType', 'db_table': "'teleforma_course_type'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.department': {
+            'Meta': {'object_name': 'Department'},
+            'default_period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'departments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+        },
+        'teleforma.discount': {
+            'Meta': {'object_name': 'Discount', 'db_table': "'teleforma_discounts'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discounts'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.document': {
+            'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
+            'annal_year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'document'", 'blank': 'True', 'to': "orm['teleforma.CourseType']"}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+            'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'documents'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.DocumentType']"}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.documentsimple': {
+            'Meta': {'ordering': "['-date_added']", 'object_name': 'DocumentSimple', 'db_table': "'teleforma_document_simple'"},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.documenttype': {
+            'Meta': {'ordering': "['number']", 'object_name': 'DocumentType', 'db_table': "'teleforma_document_type'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'for_corrector': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'teleforma.groupedmessage': {
+            'Meta': {'object_name': 'GroupedMessage', 'db_table': "'teleforma_grouped_messages'"},
+            'date_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.StudentGroup']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'message': ('django.db.models.fields.TextField', [], {}),
+            'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+            'sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'subject': ('django.db.models.fields.CharField', [], {'max_length': '119'}),
+            'to_send': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.home': {
+            'Meta': {'object_name': 'Home'},
+            'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'modified_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}),
+            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'home_texts'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+            'text': ('tinymce.models.HTMLField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'default': '"Page d\'accueil"', 'max_length': '255'}),
+            'video': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Media']", 'null': 'True', 'blank': 'True'})
+        },
+        'teleforma.iej': {
+            'Meta': {'ordering': "['name']", 'object_name': 'IEJ'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.livestream': {
+            'Meta': {'object_name': 'LiveStream', 'db_table': "'teleforma_live_stream'"},
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'livestream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'server': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'livestream'", 'to': "orm['teleforma.StreamingServer']"}),
+            'stream_type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'teleforma.media': {
+            'Meta': {'ordering': "['-date_modified', '-conference__session']", 'object_name': 'Media'},
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'course_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.CourseType']"}),
+            'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+        },
+        'teleforma.newsitem': {
+            'Meta': {'object_name': 'NewsItem'},
+            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['teleforma.Course']"}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['auth.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+            'text': ('tinymce.models.HTMLField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.optionalfee': {
+            'Meta': {'object_name': 'OptionalFee', 'db_table': "'teleforma_optional_fees'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'optional_fees'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.organization': {
+            'Meta': {'object_name': 'Organization'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'teleforma.parameters': {
+            'Meta': {'object_name': 'Parameters'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'inscription_text': ('tinymce.models.HTMLField', [], {'blank': 'True'})
+        },
+        'teleforma.payback': {
+            'Meta': {'object_name': 'Payback', 'db_table': "'teleforma_paybacks'"},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paybacks'", 'to': "orm['teleforma.Student']"}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.payment': {
+            'Meta': {'ordering': "['scheduled', 'month']", 'object_name': 'Payment', 'db_table': "'teleforma_payments'"},
+            'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'month': ('django.db.models.fields.IntegerField', [], {'default': '1', 'null': 'True', 'blank': 'True'}),
+            'online_paid': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'scheduled': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'payments'", 'to': "orm['teleforma.Student']"}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64'}),
+            'value': ('django.db.models.fields.FloatField', [], {})
+        },
+        'teleforma.period': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+            'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_close_accounts': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_exam_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inscription_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inscription_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'department': ('telemeta.models.core.ForeignKey', [], {'default': 'None', 'related_name': "'period'", 'null': 'True', 'blank': 'True', 'to': "orm['teleforma.Department']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_open': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'message_local': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'message_platform': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nb_script': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
+        },
+        'teleforma.professor': {
+            'Meta': {'ordering': "['user__last_name']", 'object_name': 'Professor'},
+            'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+            'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"})
+        },
+        'teleforma.profile': {
+            'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"},
+            'address': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'address_detail': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'birthday': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'birthday_place': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'ss_number': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
+            'wifi_login': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'wifi_pass': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'teleforma.room': {
+            'Meta': {'object_name': 'Room'},
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"})
+        },
+        'teleforma.streamingserver': {
+            'Meta': {'object_name': 'StreamingServer', 'db_table': "'teleforma_streaming_server'"},
+            'admin_password': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'port': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'source_password': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '32'})
+        },
+        'teleforma.student': {
+            'Meta': {'ordering': "['user__last_name', '-date_subscribed']", 'object_name': 'Student'},
+            'application_fees': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'balance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'confirmation_sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'date_subscribed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'fascicule': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+            'is_subscribed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'level': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'options': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'options_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_1_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_2_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_speciality_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'payment_schedule': ('django.db.models.fields.CharField', [], {'default': "'split'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'payment_type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'portrait': ('django.db.models.fields.files.ImageField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+            'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'procedure_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+            'promo_code': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'subscription_fees': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_training'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+            'trainings': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'student_trainings'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Training']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}),
+            'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'written_speciality_2students'", 'null': 'True', 'to': "orm['teleforma.Course']"})
+        },
+        'teleforma.studentgroup': {
+            'Meta': {'object_name': 'StudentGroup', 'db_table': "'teleforma_student_groups'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'students': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Student']"})
+        },
+        'teleforma.training': {
+            'Meta': {'object_name': 'Training'},
+            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'magistral': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_magistral'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'obligation': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_obligation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'options': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_options'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_1': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_1'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_2': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_2'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'oral_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+            'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+            'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'procedure': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_procedure'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'synthesis_note': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_synthesis_note'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+            'written_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_written_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"})
+        },
+        'teleforma.webclassgroup': {
+            'Meta': {'ordering': "['name']", 'object_name': 'WebClassGroup'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'iejs': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'web_class_group'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.IEJ']"}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'telemeta.acquisitionmode': {
+            'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.adconversion': {
+            'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.ethnicgroup': {
+            'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.genericstyle': {
+            'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.language': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"},
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+            'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+            'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+            'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'})
+        },
+        'telemeta.legalright': {
+            'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.location': {
+            'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"},
+            'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}),
+            'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}),
+            'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'})
+        },
+        'telemeta.locationtype': {
+            'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"},
+            'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('telemeta.models.core.CharField', [], {'max_length': '150'})
+        },
+        'telemeta.mediacollection': {
+            'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"},
+            'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}),
+            'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}),
+            'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+            'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+            'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}),
+            'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}),
+            'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}),
+            'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}),
+            'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}),
+            'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}),
+            'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+            'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}),
+            'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}),
+            'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}),
+            'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}),
+            'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}),
+            'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'})
+        },
+        'telemeta.mediaitem': {
+            'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"},
+            'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+            'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+            'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}),
+            'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}),
+            'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+            'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}),
+            'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'depositor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'digitalist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'digitization_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}),
+            'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+            'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}),
+            'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}),
+            'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'mimetype': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+            'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'organization': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Organization']", 'null': 'True', 'blank': 'True'}),
+            'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+            'publishing_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+            'recordist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Rights']", 'null': 'True', 'blank': 'True'}),
+            'scientist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'summary': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+            'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'topic': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Topic']", 'null': 'True', 'blank': 'True'}),
+            'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '512', 'blank': 'True'}),
+            'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"})
+        },
+        'telemeta.metadataauthor': {
+            'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.metadatawriter': {
+            'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.organization': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Organization', 'db_table': "'organization'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.physicalformat': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.publisher': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.publishercollection': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}),
+            'value': ('telemeta.models.core.CharField', [], {'max_length': '250'})
+        },
+        'telemeta.publishingstatus': {
+            'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.recordingcontext': {
+            'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.rights': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Rights', 'db_table': "'rights'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.topic': {
+            'Meta': {'ordering': "['value']", 'object_name': 'Topic', 'db_table': "'topic'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        },
+        'telemeta.vernacularstyle': {
+            'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+        }
+    }
+
+    complete_apps = ['teleforma']
\ No newline at end of file
index a8ba99dca78afa846e996d1f61bf35d3c046049e..3fc28c78a11605276e95679513d52bf890327a44 100755 (executable)
@@ -275,12 +275,46 @@ class Profile(models.Model):
     wifi_login = models.CharField(_('WiFi login'), max_length=255, blank=True)
     wifi_pass = models.CharField(_('WiFi pass'), max_length=255, blank=True)
     birthday = models.DateField(_('birthday'), blank=True, null=True, help_text="jj/mm/aaaa")
-
+    birthday_place =  models.CharField('Lieu de naissance', max_length=255, blank=True, null=True)
+    ss_number = models.CharField('Sécurité sociale',
+                                 max_length=15, blank=True, null=True)
     class Meta(MetaCore):
         db_table = app_label + '_' + 'profiles'
         verbose_name = _('profile')
 
 
+
+PAY_STATUS_CHOICES = [
+    ('honoraires', 'Honoraires'),
+    ('salarie', 'Salarié'),
+]
+class Corrector(Model):
+    "A corrector profile, only used for registration for the moment"
+
+    user = models.ForeignKey(User, related_name='corrector', verbose_name=_('user'), unique=True)
+    period = models.ForeignKey('Period', related_name='corrector', verbose_name=_('period'),
+                                 blank=True, null=True, on_delete=models.SET_NULL)
+    pay_status = models.CharField('Statut', choices=PAY_STATUS_CHOICES,
+                                    max_length=64, blank=True, null=True,
+                                    default='honoraire')
+    
+    date_registered = models.DateTimeField(_('registration date'), auto_now_add=True, null=True, blank=True)
+    
+    
+    def __unicode__(self):
+        try:
+            return self.user.last_name + ' ' + self.user.first_name
+        except:
+            return ''
+
+    
+    class Meta(MetaCore):
+        db_table = app_label + '_' + 'corrector'
+        verbose_name = _('Correcteur')
+        verbose_name_plural = _('Correcteurs')
+        ordering = ['user__last_name', '-date_registered']
+
+
 months_choices = []
 for i in range(1,13):
     months_choices.append((i, datetime.date(2015, i, 1).strftime('%B')))
diff --git a/teleforma/templates/registration/registration_corrector_complete.html b/teleforma/templates/registration/registration_corrector_complete.html
new file mode 100644 (file)
index 0000000..e692198
--- /dev/null
@@ -0,0 +1,36 @@
+{% extends "registration/registration_base.html" %}
+{% load i18n %}
+{% load telemeta_utils %}
+{% load teleforma_tags %}
+
+{% block title %}<center>{% trans "Registration" %} - {% description %}</center>{% endblock %}
+
+{% block content %}
+<center>
+<div class="register">
+Vous venez de réaliser avec succès votre préinscription à la formation {{ period }} du Pré-Barreau.
+
+<br><br>
+
+Afin de compléter votre inscription, il est nécessaire d’imprimer le formulaire ci-dessous, de le dater et le signer, et nous le retourner accompagné de deux photos d’identité à l’adresse suivante :
+<br><br>
+
+LE PRE-BARREAU<br>
+Service inscription<br>
+3, rue de Nesle<br>
+75006 Paris
+<br><br><br>
+
+<a href="{% url teleforma-corrector-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/telemeta/images/download.png" alt="" style="vertical-align:middle" />&nbsp;{% trans "Download" %}</a>
+<br><br><br>
+
+Une fois votre dossier reçu et confirmé par nos services, vous recevrez un mail vous invitant à procéder au règlement des arrhes par carte bancaire. <b>Votre inscription ne sera validée qu’au terme de cette ultime étape.</b>
+<br><br>
+<a href="http://crfpa.pre-barreau.com/tarifs/conditions-generales-dinscription">Conditions générales d’inscription</a>
+<br><br>
+
+
+</center>
+</div>
+
+{% endblock %}
diff --git a/teleforma/templates/registration/registration_corrector_pdf.html b/teleforma/templates/registration/registration_corrector_pdf.html
new file mode 100644 (file)
index 0000000..0265146
--- /dev/null
@@ -0,0 +1,124 @@
+<!DOCTYPE html>
+{% load i18n %}
+{% load telemeta_utils %}
+{% load teleforma_tags %}
+
+{% get_current_language as LANGUAGE_CODE %}
+{% get_available_languages as LANGUAGES %}
+<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}"
+    {% if LANGUAGE_BIDI %}dir="rtl" {% endif %}>
+
+<head>
+    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+
+    <title>{%block head_title %}{% description %} - {% trans "Registration" %}{% endblock %}</title>
+
+    {% block stylesheets %}
+    <link rel="stylesheet" type="text/css" href="/static/teleforma/css/teleforma_pdf.css" />
+    {% endblock %}
+
+    {% block extra_stylesheets %}{% endblock %}
+
+</head>
+
+<body>
+    {% block layout %}
+    {% with corrector.user.profile.all.0 as profile %}
+
+    <div id="layout">
+
+        <div id="header">
+            <span style="color: yellow; font-weight: bold;">&gt;</span> Le Pré-Barreau - Préparation au CRFPA
+        </div>
+        <div id="content">
+            <table class="table1">
+                <tr>
+                    <td class="bold">{% trans "First name" %} : </td>
+                    <td>{{ corrector.user.first_name }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "Last name" %} : </td>
+                    <td>{{ corrector.user.last_name|upper }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "Address" %} : </td>
+                    <td>{{ profile.address }} {{ profile.postal_code }} {{ profile.city }}, {{ profile.country }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "Telephone" %} : </td>
+                    <td>{{ profile.telephone }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "E-mail" %} : </td>
+                    <td>{{ corrector.user.email }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "Username" %} : </td>
+                    <td>{{ corrector.user.username }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">{% trans "Birthday" %} : </td>
+                    <td>{{ profile.birthday }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">Lieu de naissance : </td>
+                    <td>{{ profile.birthday_place }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">N° de sécurité sociale : </td>
+                    <td>{{ profile.ss_number }}</td>
+                </tr>
+
+
+                <tr>
+                    <td class="bold">Période : </td>
+                    <td>{{ corrector.period }}</td>
+                </tr>
+                <tr>
+                    <td class="bold">Statut : </td>
+                    <td>{{ corrector.get_pay_status_display }}</td>
+                </tr>
+
+                {# <tr><td class="bold">{% trans "Matière d'oral technique oral_2" %} : </td><td>{{ student.oral_2 }}</td></tr>#}
+
+                <tr>
+                    <td class="bold">{% trans "Registration date" %} : </td>
+                    <td>{{ corrector.date_registered}}</td>
+                </tr>
+
+            </table>
+
+            <h3>Je certifie avoir pris connaissance des conditions générales d’inscription et du règlement intérieur.
+            </h3>
+
+            <table class="table2">
+                <tr>
+                    <td>Envoyer à :<br><br>
+                        LE PRE-BARREAU<br>
+                        Service inscription<br>
+                        3, rue de Nesle<br>
+                        75006 Paris
+                    </td>
+                    <td>
+                        <h3>A ...................................., le .......................................</h3>
+                        <br>
+                        <h3>Signature</h3>
+                    </td>
+                </tr>
+            </table>
+
+        </div>
+
+        {% block footer %}
+        <div id="footer">
+            Copyright &copy; {% current_year %} Pré-Barreau
+        </div>
+        {% endblock %}
+
+    </div>
+    {% endwith %}
+    {% endblock layout %}
+
+</body>
+
+</html>
\ No newline at end of file
index e477190243506aa4c90512fb4a9771047c315ce4..adbc63cdff050ad9376994ace6cc05c1a5bfaec5 100644 (file)
@@ -30,7 +30,9 @@
 <form class="register" id="_registerForm" method="post" action="" enctype="multipart/form-data" data-ajax="false">
     {% csrf_token %}
 
-    <h1>{% trans "Pre-registration" %} - {% description %}</h1>
+    <h1>{% if mode_corrector %}Pré-inscription des correcteurs - PRÉ-BARREAU -
+        CRFPA{% else %}{% trans "Pre-registration" %} -
+        {% description %}{% endif %}</h1>
 
     {{ introduction|safe }}
 
@@ -66,7 +68,8 @@
 
     <h2><img src="{{ STATIC_URL }}teleforma/images/crfpa_formation.svg"
             onerror="this.onerror=null; this.src='{{ STATIC_URL }}teleforma/images/crfpa_formation.png'"
-            alt="votre formation" title="votre formation" class="votreformation" />Votre formation</h2>
+            alt="votre formation" title="votre formation" class="votreformation"
+            />{% if mode_corrector %}Statut{% else %}Votre formation{% endif %} </h2>
     <fieldset class="form_select">
         <div class="column"> {% for fieldname in form.training_fields %}
             {% with field=form|get_item:fieldname %}
index f5b1b1301eca6bbac6ca29f3eefdf5694fd7fd78..da3c0a76d66344a7c207670c999fd00a25504281 100644 (file)
@@ -83,7 +83,7 @@
                     <td>{% if student.platform_only %}E-learning seulement{% else %}Présentielle{% endif %}</td>
                 </tr>
                 <tr>
-                    <td class="bold">{% trans "Fascicule" %} : </td>
+                    <td class="bold">{% trans "Envoi postal des fascicules" %} : </td>
                     <td>{% if student.fascicule %}Oui{% else %}Non{% endif %}</td>
                 </tr>
                 <tr>
index 2cdcdcd09741c32a8bf7f62ccb7d17be8cd6e4bb..cc5d807579ac3352a291609d9e80b685452c1c81 100644 (file)
@@ -59,6 +59,11 @@ urlpatterns = patterns('',
     url(r'^accounts/register/(?P<username>.*)/complete/$', UserCompleteView.as_view(), name="teleforma-register-complete"),
     url(r'^accounts/register/(?P<username>.*)/download/$', RegistrationPDFViewDownload.as_view(), name="teleforma-registration-download"),
     url(r'^accounts/register/(?P<username>.*)/view/$', RegistrationPDFView.as_view(), name="teleforma-registration-view"),
+    
+    url(r'^correctors/register/$', CorrectorAddView.as_view(), name="teleforma-corrector-register"),
+    url(r'^correctors/register/(?P<username>.*)/complete/$', CorrectorCompleteView.as_view(), name="teleforma-corrector-register-complete"),
+    url(r'^correctors/register/(?P<username>.*)/download/$', CorrectorRegistrationPDFViewDownload.as_view(), name="teleforma-corrector-registration-download"),
+    url(r'^correctors/register/(?P<username>.*)/view/$', CorrectorRegistrationPDFView.as_view(), name="teleforma-corrector-registration-view"),
 
     url(r'^captcha/', include('captcha.urls')),
 
index 9285c6e72fce055a3676821b2f7dba031ba09fda..a40c17217a89fb4721d4d952aa0dfc33c4840e25 100644 (file)
@@ -391,6 +391,74 @@ class UsersExportView(UsersView):
         return response
 
 
+class CorrectorXLSBook(object):
+
+    first_row = 2
+
+    def __init__(self, correctors):
+        self.book = Workbook()
+        self.correctors = correctors
+        self.sheet = self.book.add_sheet('Correcteurs')
+
+    def export_user(self, counter, corrector):
+        # if counter >= 419:
+        #     import pdb;pdb.set_trace()
+        user = corrector.user
+        row = self.sheet.row(counter + self.first_row)
+        row.write(0, user.last_name)
+        row.write(1, user.first_name)
+        row.write(2, user.email)
+
+        profile = Profile.objects.filter(user=user)
+        if profile:
+            profile = profile[0]
+            row.write(3, profile.address)
+            row.write(4, profile.address_detail)
+            row.write(5, profile.postal_code)
+            row.write(6, profile.city)
+            row.write(7, profile.telephone)
+            if profile.birthday:
+                try:
+                    row.write(8, profile.birthday.strftime("%d/%m/%Y"))
+                except ValueError:
+                    row.write(8, 'erreur')
+
+            if corrector.date_registered:
+                row.write(9, corrector.date_registered.strftime("%d/%m/%Y"))
+            else:
+                row.write(9, "")
+            row.write(10, str(corrector.period))
+            row.write(11, corrector.pay_status)
+                
+        return counter + 1
+
+    def write(self):
+        row = self.sheet.row(0)
+        cols = [{'name':'NOM', 'width':5000},
+                {'name':'PRENOM', 'width':5000},
+                {'name':'MAIL', 'width':7500},
+                {'name':'ADRESSE', 'width':7500},
+                {'name':'ADRESSE (suite)', 'width': 7500},
+                {'name':'CP', 'width':2500},
+                {'name':'VILLE', 'width':5000},
+                {'name':'TEL', 'width':5000},
+                {'name': 'Date de naissance', 'width': 5000},
+                {'name':"Date inscription", 'width':5000},
+                {'name':"Periode", 'width':5000},
+                {'name':"Statut", 'width':5000},
+                ]
+        
+        i = 0
+        for col in cols:
+            row.write(i, col['name'])
+            self.sheet.col(i).width = col['width']
+            i += 1
+            
+        counter = 0
+        for corrector in self.correctors:
+            counter = self.export_user(counter, corrector)
+
+
 class AnnalsView(ListView):
 
     model = Document
@@ -475,48 +543,9 @@ class UserAddView(CreateView):
         context['introduction'] = parameters.inscription_text
         return context
 
-    #
-    # def post(self, request, *args, **kwargs):
-    #     """
-    #     Handles POST requests, instantiating a form and formset instances with the passed
-    #     POST variables and then checked for validity.
-    #     """
-    #     self.object = None
-    #     form_class = self.get_form_class()
-    #     form = self.get_form(form_class)
-    #
-    #     if form.is_valid():
-    #         self.object = form.save(commit=False)
-    #         form_validated = True
-    #     else:
-    #         form_validated = False
-    #
-    #     inlines = self.construct_inlines()
-    #     import pdb;pdb.set_trace()
-    #     if all_valid(inlines) and form_validated:
-    #         return self.forms_valid(form, inlines)
-    #     return self.forms_invalid(form, inlines)
-
-    # def form_valid(self, form):
-    #     # messages.info(self.request, _("You have successfully register your account."))
-    #     # first_name = form.cleaned_data['first_name']
-    #     # last_name = form.cleaned_data['last_name']
-    #     # username = get_unique_username(first_name, last_name)
-    #     # self.username = username
-    #     # user = form.save()
-    #     # user.username = username
-    #     # user.last_name = last_name.upper()
-    #     # user.first_name = first_name.capitalize()
-    #     # user.is_active = False
-    #     # user.save()
-    #     # period = inlines[1].cleaned_data['period']
-    #     # import pdb;pdb.set_trace()
-    #     return super(UserAddView, self).form_valid(form)
-
     def get_success_url(self):
         return reverse_lazy('teleforma-register-complete', kwargs={'username':self.object.username})
 
-
 class UserCompleteView(TemplateView):
 
     template_name = 'registration/registration_complete.html'
@@ -579,6 +608,125 @@ class RegistrationPDFViewDownload(RegistrationPDFView):
         filename += '.pdf'
         return filename.encode('utf-8')
 
+    
+class RegistrationPDFView(PDFTemplateResponseMixin, TemplateView):
+
+    template_name = 'registration/registration_pdf.html'
+    pdf_template_name = template_name
+
+    def is_pdf(self):
+        return True
+
+    def get_context_data(self, **kwargs):
+        context = super(RegistrationPDFView, self).get_context_data(**kwargs)
+        user = User.objects.get(username=kwargs['username'])
+
+        # some form fixes
+        student = user.student.all()[0]
+        if student.training and not student.trainings.all():
+            student.trainings.add(student.training)
+        if not student.training and student.trainings.all():
+            student.training = student.trainings.all()[0]
+        if not student.oral_1:
+            student.oral_1 = Course.objects.get(code='X')
+        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()
+        if profile.country:
+            profile.country = profile.country.upper()
+        profile.save()
+
+        context['student'] = student
+        return context
+
+class CorrectorRegistrationPDFView(PDFTemplateResponseMixin, TemplateView):
+
+    template_name = 'registration/registration_corrector_pdf.html'
+    pdf_template_name = template_name
+
+    def is_pdf(self):
+        return True
+
+    def get_context_data(self, **kwargs):
+        context = super(CorrectorRegistrationPDFView, self).get_context_data(**kwargs)
+        user = User.objects.get(username=kwargs['username'])
+
+        # some form fixes
+        corrector = user.corrector.all()[0]
+        profile = user.profile.all()[0]
+        if profile.city:
+            profile.city = profile.city.upper()
+        if profile.country:
+            profile.country = profile.country.upper()
+        profile.save()
+
+        context['corrector'] = corrector
+        context['profile'] = profile
+        return context
+    
+class RegistrationPDFViewDownload(RegistrationPDFView):
+
+    pdf_filename = 'registration.pdf'
+
+    def get_pdf_filename(self):
+        super(RegistrationPDFViewDownload, self).get_pdf_filename()
+        user = User.objects.get(username=self.kwargs['username'])
+        # user = self.get_object()
+        student = user.student.all()[0]
+        prefix = unicode(_('Registration'))
+        filename = '_'.join([prefix, student.user.first_name, student.user.last_name])
+        filename += '.pdf'
+        return filename.encode('utf-8')
+
+class CorrectorRegistrationPDFViewDownload(RegistrationPDFView):
+
+    pdf_filename = 'registration.pdf'
+
+    def get_pdf_filename(self):
+        super(RegistrationPDFViewDownload, self).get_pdf_filename()
+        user = User.objects.get(username=self.kwargs['username'])
+        # user = self.get_object()
+        corrector = user.corrector.all()[0]
+        prefix = unicode(_('Registration'))
+        filename = '_'.join([prefix, corrector.user.first_name, corrector.user.last_name])
+        filename += '.pdf'
+        return filename.encode('utf-8')
+    
+
+class CorrectorAddView(CreateView):
+
+    model = User
+    template_name = 'registration/registration_form.html'
+    form_class = CorrectorForm
+    # inlines = [ProfileInline, StudentInline]
+
+    def get_context_data(self, **kwargs):
+        context = super(CorrectorAddView, self).get_context_data(**kwargs)
+        parameters = Parameters.load()
+        # context['introduction'] = parameters.inscription_text
+        context['mode_corrector'] = True
+        return context
+
+    def get_success_url(self):
+        return reverse_lazy('teleforma-corrector-register-complete', kwargs={'username':self.object.username})
+    
+class CorrectorCompleteView(TemplateView):
+
+    template_name = 'registration/registration_corrector_complete.html'
+
+    def get_context_data(self, **kwargs):
+        context = super(CorrectorCompleteView, self).get_context_data(**kwargs)
+        # context['register_doc_print'] = Document.objects.get(id=settings.TELEFORMA_REGISTER_DEFAULT_DOC_ID)
+        context['username'] = kwargs['username']
+        user = User.objects.get(username=kwargs['username'])
+        corrector = user.corrector.all()[0]
+        context['period'] = corrector.period
+        return context
+
+
 @csrf_exempt
 def update_training(request, id):
     platform_only = request.POST.get('platform_only', "") == 'True' and True or False