return response
def export_xls(self, request, queryset):
- users = [student.user for student in queryset]
- book = UserXLSBook(users)
+ book = UserXLSBook(students = queryset)
book.write()
response = HttpResponse(mimetype="application/vnd.ms-excel")
response['Content-Disposition'] = 'attachment; filename=users.xls'
class HomeAdmin(admin.ModelAdmin):
+ list_filter = ('enabled',)
+ search_fields = [ 'periods__name', 'title', 'text' ]
+ list_display = ('title', 'enabled', 'modified_at')
+ readonly_fields = ('modified_at',)
def get_form(self, request, obj=None, **kwargs):
form = super(HomeAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['video'].queryset = Media.objects.filter(type='webm')
'corrector__last_name', 'course__title', 'course__code']
readonly_fields = ['date_added','uuid','box_uuid','sha1','mime_type']
list_filter = ['period', 'course__title', 'session', 'type', 'status',
- 'date_submitted', 'date_marked', 'date_rejected']
+ 'date_submitted', 'date_marked', 'date_rejected',
+ 'author__student__platform_only' ]
list_display = ['title', 'author_name', 'file_size', 'status']
actions = ['force_resubmit',]
# box_client = Client(oauth)
SCRIPT_STATUS = ((0, _('rejected')), (1, _('draft')), (2, _('submitted')),
- (3, _('pending')),(4, _('marked')), (5, _('read')), (6, _('backup')) )
+ (3, _('pending')),(4, _('marked')), (5, _('read')),
+ (6, _('backup')), (7, _('stat')) )
REJECT_REASON = (('unreadable', _('unreadable')),
('bad orientation', _('bad orientation')),
self.save()
def save(self, *args, **kwargs):
- if self.status == 4 and self.score:
+ if not self.file and self.score:
+ self.status = 7
+ elif self.status == 4 and self.score:
self.mark()
- if self.status == 0 and self.reject_reason:
+ elif self.status == 0 and self.reject_reason:
self.reject()
super(Script, self).save(*args, **kwargs)
<option value="{{type.0}}" {% if type.0 == type_selected %}selected="selected"{% endif %}>{{type.1}}</option>
{% endfor %}
</select>
+ <br />
+ <label for="platform_only_select">{% trans "E-learning uniquement"%}</label>
+ <select name="platform_only" id="platform_only_select">
+ <option value="">---</option>
+ <option value="1" {% if platform_only == '1' %}selected="selected"{% endif %}>Oui</option>
+ <option value="0" {% if platform_only == '0' %}selected="selected"{% endif %}>Non</option>
+ </select>
<input type="submit" value="Filtrer"/>
</form>
{% endif %}
self.period = Period.objects.get(id=self.kwargs['period_id'])
context['period'] = self.period
context['script_service_url'] = getattr(settings, 'TELEFORMA_EXAM_SCRIPT_SERVICE_URL')
+ self.nb_script = self.period.nb_script or settings.TELEFORMA_EXAM_MAX_SESSIONS
if getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) and self.period.date_exam_end:
upload = datetime.datetime.now() <= self.period.date_exam_end
- if self.period.nb_script:
- if Script.objects.filter(period = self.period,
- author = self.request.user).count() >= self.period.nb_script:
- upload = False
+ if Script.objects.filter(period = self.period,
+ author = self.request.user).count() >= self.nb_script:
+ upload = False
context['upload'] = upload
else:
context['upload'] = False
correctors = User.objects.filter(corrector_scripts__in=self.get_base_queryset()).order_by('last_name').distinct()
context['correctors_list'] = [(str(corrector.id), corrector.get_full_name()) for corrector in correctors]
context['corrector_selected'] = self.request.GET.get('corrector', str(self.request.user.id))
+ session_choices = get_n_choices(self.nb_script + 1)
context['sessions_list'] = session_choices
context['session_selected'] = self.request.GET.get('session')
types = ScriptType.objects.all()
courses = Course.objects.filter(scripts__in=self.get_base_queryset()).distinct()
context['courses_list'] = [(str(course.id), course.title) for course in courses]
context['course_selected'] = self.request.GET.get('course')
+ context['platform_only'] = self.request.GET.get('platform_only')
return context
class ScriptView(ScriptMixinView, CourseAccessMixin, UpdateView):
model = Script
template_name='exam/scripts.html'
+ status_filter = None
def get_form_queryset(self):
QT = ~Q(pk=None)
type = self.request.GET.get('type')
session = self.request.GET.get('session')
course = self.request.GET.get('course')
+ platform_only = self.request.GET.get('platform_only')
if type:
- QT = Q(type__id=int(type)) & QT
+ QT &= Q(type__id=int(type))
if session:
- QT = Q(session=session) & QT
+ QT &= Q(session=session)
if course:
- QT = Q(course__id=int(course)) & QT
+ QT &= Q(course__id=int(course))
if corrector:
- QT = Q(corrector__id=int(corrector)) & QT
+ QT &= Q(corrector__id=int(corrector))
+ if platform_only:
+ QT &= Q(author__student__platform_only = int(platform_only))
return QT
-
- @method_decorator(login_required)
- def dispatch(self, *args, **kwargs):
- return super(ScriptsView, self).dispatch(*args, **kwargs)
-
-
-class ScriptsPendingView(ScriptsView):
-
+
def get_base_queryset(self):
- period = Period.objects.get(id=self.kwargs['period_id'])
- QT = Q(status__in=(2, 3), period=period)
+ QT = self.get_form_queryset() & Q(period_id=self.kwargs['period_id'])
+ if self.status_filter:
+ QT &= Q(status__in=self.status_filter)
return Script.objects.filter(QT)
-
def get_queryset(self):
user = self.request.user
- period = Period.objects.get(id=self.kwargs['period_id'])
+ base_qs = self.get_base_queryset()
- if self.request.GET.get('corrector') is not None:
- QT = Q(status__in=(2, 3), period=period)
- else:
- QT = Q(status=2, author=user, period=period)
- QT = Q(status=3, author=user, period=period) | QT
- QT = Q(status=3, corrector=user, period=period) | QT
+ if self.request.GET.get('corrector') is None:
+ QT = Q(author=user) | Q(corrector=user)
professor = user.professor.all()
if professor:
professor = professor[0]
- for course in professor.courses.all():
- QT = Q(status=2, period=period, course=course) | QT
- QT = Q(status=3, period=period, course=course) | QT
+ courses_id = [ c['id'] for c in professor.courses.values('id') ]
+ QT |= Q(course_id__in=courses_id)
- QT = self.get_form_queryset() & QT
+ base_qs = base_qs.filter(QT)
+ return base_qs
- return Script.objects.filter(QT)
-
- def get_context_data(self, **kwargs):
- context = super(ScriptsPendingView, self).get_context_data(**kwargs)
- context['title'] = ugettext('Pending scripts')
- return context
+ @method_decorator(login_required)
+ def dispatch(self, *args, **kwargs):
+ return super(ScriptsView, self).dispatch(*args, **kwargs)
-class ScriptsTreatedView(ScriptsView):
+class ScriptsPendingView(ScriptsView):
- def get_base_queryset(self):
- period = Period.objects.get(id=self.kwargs['period_id'])
- QT = Q(status__in=(4, 5), period=period)
- return Script.objects.filter(QT)
+ status_filter = (2, 3)
def get_queryset(self):
- user = self.request.user
- period = Period.objects.get(id=self.kwargs['period_id'])
+ qs = super(ScriptsPendingView, self).get_queryset()
+
+ if self.request.GET.get('corrector') is None:
+ # Exclude status=3 but not author=user
+ qs = qs.filter(~Q(status=3) | Q(author=user))
- if self.request.GET.get('corrector') is not None:
- QT = Q(status__in=(4, 5), period=period)
- else:
- QT = Q(status=4, author=user, period=period)
- QT = Q(status=5, author=user, period=period) | QT
- QT = Q(status=4, corrector=user, period=period) | QT
- QT = Q(status=5, corrector=user, period=period) | QT
+ return qs
- professor = user.professor.all()
- if professor:
- professor = professor[0]
- for course in professor.courses.all():
- QT = Q(status=4, period=period, course=course) | QT
- QT = Q(status=5, period=period, course=course) | QT
+ def get_context_data(self, **kwargs):
+ context = super(ScriptsPendingView, self).get_context_data(**kwargs)
+ context['title'] = ugettext('Pending scripts')
+ return context
- QT = self.get_form_queryset() & QT
- return Script.objects.filter(QT)
+class ScriptsTreatedView(ScriptsView):
+
+ status_filter = (4, 5 ,7)
+
def get_context_data(self, **kwargs):
context = super(ScriptsTreatedView, self).get_context_data(**kwargs)
period = Period.objects.get(id=self.kwargs['period_id'])
class ScriptsRejectedView(ScriptsView):
-
- def get_base_queryset(self):
- period = Period.objects.get(id=self.kwargs['period_id'])
- QT = Q(status=0)
- return Script.objects.filter(QT)
-
- def get_queryset(self):
- user = self.request.user
- period = Period.objects.get(id=self.kwargs['period_id'])
- if self.request.GET.get('corrector') is not None:
- QT = Q(status=0)
- else:
- QT = Q(status=0, author=user)
- QT = Q(status=0, corrector=user) | QT
-
- professor = user.professor.all()
- if professor:
- professor = professor[0]
- for course in professor.courses.all():
- QT = Q(status=0, period=period, course=course) | QT
-
- QT = self.get_form_queryset() & QT
- return Script.objects.filter(QT)
+ status_filter = (0,)
def get_context_data(self, **kwargs):
context = super(ScriptsRejectedView, self).get_context_data(**kwargs)
class ScriptsScoreAllView(ScriptsTreatedView):
+ perso_name = 'Moyenne personnelle'
+
template_name='exam/scores.html'
def score_data_setup(self, x, y):
def get_context_data(self, **kwargs):
context = super(ScriptsScoreAllView, self).get_context_data(**kwargs)
user = self.request.user
- period = Period.objects.get(id=self.kwargs['period_id'])
+ period_id = self.kwargs['period_id']
+
+ if 'course_id' in self.kwargs:
+ course = Course.objects.get(id=self.kwargs['course_id'])
+ else:
+ course = None
+
+ is_staff = user.is_staff
+ staff_or_teacher = is_staff or user.professor.exists()
- if self.request.user.is_staff:
- QT = Q(status=4, period=period)
- QT = Q(status=5, period=period) | QT
- QT = Q(date_added__gte=self.period.date_begin) | QT
+ QT = Q(period_id=period_id, status__in = self.status_filter)
+ all_scripts = Script.objects.filter(QT).exclude(score=None)
+
+ if is_staff:
+ QT |= Q(date_added__gte=self.period.date_begin)
scripts = Script.objects.filter(QT).exclude(score=None)
else:
scripts = self.get_queryset()
- sessions = []
+ if course:
+ scripts = scripts.filter(course=course)
+ all_scripts = all_scripts.filter(course=course)
+
+ sessions = set()
scores = []
- for script in scripts:
- if not script.session in sessions:
- sessions.append(script.session)
- sessions = map(str, sorted(map(int, sessions)))
+ for script in scripts.values('session'):
+ sessions.add(script['session'])
+ sessions = sorted(sessions, key = lambda v: int(v))
sessions_x = {'x': sessions}
- if not (self.request.user.is_staff or self.request.user.professor.all()):
- data = []
- for session in sessions:
- data.append(np.mean([float(script.score) for script in scripts.filter(session=session) if script.score]))
- scores.append({'name': 'Moyenne personnelle' + ' (' + str(len(sessions)) + ')', 'data': data})
-
- data = []
- counter = 0
- for session in sessions:
- scripts = Script.objects.filter(session=session, period=self.period).exclude(score=None)
- counter += scripts.count()
- data.append(np.mean([s.score for s in scripts if script.score]))
- scores.append({'name': 'Moyenne generale' + ' (' + str(counter) + ')', 'data': data})
+ def by_session(scripts):
+ res = { s: [] for s in sessions }
+ for script in scripts.values('score', 'session'):
+ if script['session'] in res:
+ res[script['session']].append(script['score'])
+ return [ np.mean(res[s]) for s in sessions ]
+
+ if not staff_or_teacher:
+ scores.append({'name': self.perso_name,
+ 'data': by_session(scripts)})
+
+ scores.append({'name': 'Moyenne generale',
+ 'data': by_session(all_scripts)})
for script_type in ScriptType.objects.all():
- data = []
- counter = 0
- for session in sessions:
- scripts = Script.objects.filter(session=session, period=self.period, type=script_type).exclude(score=None)
- data.append(np.mean([s.score for s in scripts if script.score]))
- counter += scripts.count()
- scores.append({'name': 'Moyenne ' + script_type.name + ' (' + str(counter) + ')', 'data': data})
+ scripts = all_scripts.filter(type=script_type)
+ scores.append({'name': 'Moyenne ' + script_type.name,
+ 'data': by_session(scripts)})
context['data'] = self.score_data_setup(sessions_x, scores)
- context['course'] = ugettext('all courses')
+ context['course'] = course and course.title or ugettext('all courses')
return context
class ScriptsScoreCourseView(ScriptsScoreAllView):
-
- def get_context_data(self, **kwargs):
- context = super(ScriptsScoreCourseView, self).get_context_data(**kwargs)
- course = Course.objects.get(id=self.kwargs['course_id'])
- period = Period.objects.get(id=self.kwargs['period_id'])
-
- if self.request.user.is_staff or self.request.user.professor.all():
- scripts = Script.objects.all().filter(course=course, period=self.period).exclude(score=None)
- else:
- scripts = self.get_queryset().filter(course=course)
-
- sessions = []
- scores = []
-
- for script in scripts:
- if not script.session in sessions:
- sessions.append(script.session)
- sessions = sorted(sessions)
- sessions_x = {'x': sessions}
-
- if not (self.request.user.is_staff or self.request.user.professor.all()):
- data = []
- for session in sessions:
- data.append(np.mean([float(script.score) for script in scripts.filter(session=session) if script.score]))
- scores.append({'name':'Note personnelle' , 'data': data})
-
- data = []
- counter = 0
- for session in sessions:
- scripts = Script.objects.filter(session=session, course=course, period=self.period).exclude(score=None)
- counter += scripts.count()
- data.append(np.mean([s.score for s in scripts if script.score]))
- scores.append({'name':'Moyenne generale' + ' (' + str(counter) + ')', 'data': data})
-
- for script_type in ScriptType.objects.all():
- data = []
- counter = 0
- for session in sessions:
- scripts = Script.objects.filter(session=session, type=script_type, course=course, period=self.period).exclude(score=None)
- counter += scripts.count()
- data.append(np.mean([s.score for s in scripts if script.score]))
- scores.append({'name': 'Moyenne ' + script_type.name + ' (' + str(counter) + ')', 'data': data})
-
- context['data'] = self.score_data_setup(sessions_x, scores)
- context['course'] = course.title
- return context
+ perso_name = 'Note personnelle'
class ScoreCreateView(ScriptCreateView):
--- /dev/null
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+from teleforma.models import *
+import datetime
+
+class Command(BaseCommand):
+ help = "Close account of students tied to expired periods"
+ admin_email = 'webmaster@parisson.com'
+
+ def handle(self, *args, **options):
+ today = datetime.date.today()
+ for period in Period.objects.filter(date_close_accounts__gte = today):
+ for student in period.student.filter(user__is_active = True):
+ print "Closing %s %s" % (student, student.user_id)
+ student.user.is_active = False
+ student.user.save()
--- /dev/null
+# -*- 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 'Home.title'
+ db.add_column('teleforma_home', 'title',
+ self.gf('django.db.models.fields.CharField')(default="Page d'accueil", max_length=255),
+ keep_default=False)
+
+ # Adding field 'Home.modified_at'
+ db.add_column('teleforma_home', 'modified_at',
+ self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now, auto_now=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Home.enabled'
+ db.add_column('teleforma_home', 'enabled',
+ self.gf('django.db.models.fields.BooleanField')(default=True),
+ keep_default=False)
+
+ # Adding M2M table for field periods on 'Home'
+ m2m_table_name = db.shorten_name('teleforma_home_periods')
+ db.create_table(m2m_table_name, (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('home', models.ForeignKey(orm['teleforma.home'], null=False)),
+ ('period', models.ForeignKey(orm['teleforma.period'], null=False))
+ ))
+ db.create_unique(m2m_table_name, ['home_id', 'period_id'])
+
+
+ def backwards(self, orm):
+ # Deleting field 'Home.title'
+ db.delete_column('teleforma_home', 'title')
+
+ # Deleting field 'Home.modified_at'
+ db.delete_column('teleforma_home', 'modified_at')
+
+ # Deleting field 'Home.enabled'
+ db.delete_column('teleforma_home', 'enabled')
+
+ # Removing M2M table for field periods on 'Home'
+ db.delete_table(db.shorten_name('teleforma_home_periods'))
+
+
+ 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'}),
+ '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.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'}),
+ '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'}),
+ '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.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': "['month']", 'object_name': 'Payment', 'db_table': "'teleforma_payments'"},
+ 'collected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'payments'", 'to': "orm['teleforma.Student']"}),
+ 'type': ('django.db.models.fields.CharField', [], {'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_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'}),
+ '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'}),
+ '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']"}),
+ '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'}),
+ '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']"}),
+ '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
--- /dev/null
+# -*- 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 M2M table for field periods on 'Course'
+ m2m_table_name = db.shorten_name('teleforma_course_periods')
+ db.create_table(m2m_table_name, (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('course', models.ForeignKey(orm['teleforma.course'], null=False)),
+ ('period', models.ForeignKey(orm['teleforma.period'], null=False))
+ ))
+ db.create_unique(m2m_table_name, ['course_id', 'period_id'])
+
+
+ def backwards(self, orm):
+ # Removing M2M table for field periods on 'Course'
+ db.delete_table(db.shorten_name('teleforma_course_periods'))
+
+
+ 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'}),
+ '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.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'}),
+ '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.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': "['month']", 'object_name': 'Payment', 'db_table': "'teleforma_payments'"},
+ 'collected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'payments'", 'to': "orm['teleforma.Student']"}),
+ 'type': ('django.db.models.fields.CharField', [], {'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_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'}),
+ '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'}),
+ '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']"}),
+ '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'}),
+ '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']"}),
+ '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
is_open = models.BooleanField(_('is open'), default=True)
date_exam_end = models.DateTimeField(_("date de fin d'examens"), null=True, blank=True)
nb_script = models.IntegerField(_("nombre maximal de copies"), null=True, blank=True)
- date_close_accounts = models.DateField(_("date de fermeture des comptes étudiants"), null = True, blank = True)
+ date_close_accounts = models.DateField("date de fermeture des comptes étudiants", null = True, blank = True)
def __unicode__(self):
return self.name
# last professor which received a student message on automatic mode
last_professor_sent = models.ForeignKey('Professor', blank=True, null=True)
+ periods = models.ManyToManyField('Period', related_name="courses",
+ verbose_name=u'Périodes associées',
+ blank=True, null=True)
+
def __unicode__(self):
return self.title
self.number = int(data['number'])
self.save()
+ def is_for_period(self, period):
+ """
+ Check if it's available for given period
+ """
+ periods = [ p['id'] for p in self.periods.values('id') ]
+ return not periods or period.id in periods
+
class Meta(MetaCore):
db_table = app_label + '_' + 'course'
verbose_name = _('course')
amount += self.subscription_fees
if self.application_fees:
amount += self.default_application_fees
- for optional_fee in self.optional_fees.all():
- amount += optional_fee.value
- for discount in self.discounts.all():
- amount -= discount.value
+ amount += self.total_optional_fees
+ amount += self.total_discount
return amount
+ @property
+ def total_optional_fees(self):
+ amount = 0
+ for optional_fee in self.optional_fees.values('value'):
+ amount += optional_fee['value']
+ return amount
+
@property
def total_payments(self):
amount = 0
- for payment in self.payments.all():
- amount += payment.value
+ for payment in self.payments.values('value'):
+ amount += payment['value']
return amount
@property
def total_discount(self):
amount = 0
- for discount in self.discounts.all():
- amount -= discount.value
+ for discount in self.discounts.values('value'):
+ amount -= discount['value']
return amount
@property
def total_paybacks(self):
amount = 0
- for payback in self.paybacks.all():
- amount -= payback.value
+ for payback in self.paybacks.values('value'):
+ amount -= payback['value']
return amount
def update_balance(self):
class Home(models.Model):
+ title = models.CharField(_('Title'), max_length=255,
+ default="Page d'accueil")
text = HTMLField('Texte', blank=True)
video = models.ForeignKey(Media, verbose_name="Video", null=True, blank=True)
+ modified_at = models.DateTimeField(u'Date de modification', auto_now=True,
+ default=datetime.datetime.now)
+ periods = models.ManyToManyField('Period', related_name="home_texts",
+ verbose_name=u'Périodes associées',
+ blank=True, null=True)
+ enabled = models.BooleanField(u'Activé', default=True)
class Meta(MetaCore):
verbose_name = "Page d'accueil"
verbose_name_plural = "Page d'accueil"
+ def is_for_period(self, period):
+ """
+ Check if it's available for given period
+ """
+ periods = [ p['id'] for p in self.periods.values('id') ]
+ return not periods or period.id in periods
+
def __unicode__(self):
- return "Page d'accueil"
-
- def save(self, *args, **kwargs):
- if Home.objects.exists() and not self.pk:
- # if you'll not check for self.pk
- # then error will also raised in update of exists model
- raise ValidationError('There is can be only one Home instance')
- return super(Home, self).save(*args, **kwargs)
+ return self.title
+
class NewsItem(models.Model):
appointments_open = True
context['hasAppointment'] = appointments_open and is_student
- home = Home.objects.all()
- if home:
- home = home[0]
- context['home_text'] = home.text
- context['home_video'] = home.video
+ homes = Home.objects.filter(enabled = True).order_by('-modified_at')
+ for home in homes:
+ if home.is_for_period(context['period']):
+ context['home_text'] = home.text
+ context['home_video'] = home.video
+ break
return context
@method_decorator(login_required)
if num_order:
courses = sorted(courses, key=lambda k: k['number'])
+ if period:
+ courses = [ c for c in courses if c['course'].is_for_period(period) ]
+
return courses
first_row = 2
- def __init__(self, users):
+ def __init__(self, students = None, users = None):
self.book = Workbook()
- self.users = users
+ if students:
+ self.students = students
+ elif users:
+ user_ids = [ u['id'] for u in users.values('id') ]
+ self.students = Student.objects.filter(user_id__in = user_ids)
+ else:
+ self.students = []
+
+ self.course_map = { c['id']: c['code'] for c in Course.objects.values('id', 'code') }
+
self.sheet = self.book.add_sheet('Etudiants')
- def export_user(self, counter, user):
+ def get_course_code(self, c_id):
+ """
+ Like get_course_code global but through the cache
+ """
+ return self.course_map.get(c_id, None) or ''
+
+ def export_user(self, counter, student):
# if counter >= 419:
# import pdb;pdb.set_trace()
- students = Student.objects.filter(user=user)
- if students:
- student = students[0]
- if student.training or student.trainings.all():
- student = Student.objects.get(user=user)
- row = self.sheet.row(counter + self.first_row)
- row.write(0, user.last_name)
- row.write(1, user.first_name)
- row.write(7, user.email)
- row.write(2, unicode(student.iej))
-
- codes = []
- for training in student.trainings.all():
- if student.platform_only:
- codes.append('I - ' + training.code)
- else:
- codes.append(training.code)
- row.write(3, unicode(' '.join(codes)))
-
- row.write(4, get_course_code(student.procedure))
- row.write(5, get_course_code(student.written_speciality))
- row.write(6, get_course_code(student.oral_1))
-
- profile = Profile.objects.filter(user=user)
- student = Student.objects.get(user=user)
- if profile:
- profile = Profile.objects.get(user=user)
- row.write(8, profile.address)
- row.write(9, profile.address_detail)
- row.write(10, profile.postal_code)
- row.write(11, profile.city)
- row.write(12, profile.telephone)
- if profile.birthday:
- row.write(13, profile.birthday.strftime("%d/%m/%Y"))
-
- row.write(14, student.level)
-
- if student.date_subscribed:
- row.write(15, student.date_subscribed.strftime("%d/%m/%Y"))
-
- if student.training:
- training = student.training
+ user = student.user
+ if student.training:
+ training = student.training
+ elif student.trainings.all():
+ training = student.trainings.all()[0]
+ else:
+ training = None
+ if training:
+ row = self.sheet.row(counter + self.first_row)
+ row.write(0, user.last_name)
+ row.write(1, user.first_name)
+ row.write(7, user.email)
+ row.write(2, unicode(student.iej))
+
+ codes = []
+ for training in student.trainings.values('code'):
+ if student.platform_only:
+ codes.append('I - ' + training['code'])
else:
- training = student.trainings.all()[0]
- row.write(16, student.total_discount)
- row.write(17, ', '.join([discount.description for discount in student.discounts.all()]))
-
- row.write(18, student.total_payments)
- row.write(19, student.total_fees)
- row.write(20, student.balance)
- row.write(21, student.total_paybacks)
-
- payments = student.payments.all()
- i = 22
- for month in months_choices:
- payment = payments.filter(month=month[0])
- if payment:
- value = payment[0].value
- else:
- value = 0
- row.write(i, value)
- i += 1
-
- return counter + 1
+ codes.append(training['code'])
+ row.write(3, unicode(' '.join(codes)))
+
+ row.write(4, self.get_course_code(student.procedure_id))
+ row.write(5, self.get_course_code(student.written_speciality_id))
+ row.write(6, self.get_course_code(student.oral_1_id))
+
+ profile = Profile.objects.filter(user=user)
+ if profile:
+ profile = profile[0]
+ row.write(8, profile.address)
+ row.write(9, profile.address_detail)
+ row.write(10, profile.postal_code)
+ row.write(11, profile.city)
+ row.write(12, profile.telephone)
+ if profile.birthday:
+ row.write(13, profile.birthday.strftime("%d/%m/%Y"))
+
+ row.write(14, student.level)
+
+ if student.date_subscribed:
+ row.write(15, student.date_subscribed.strftime("%d/%m/%Y"))
+
+ total_discount = 0
+ descriptions = []
+ for discount in student.discounts.values('value', 'description'):
+ total_discount -= discount['value']
+ descriptions.append(discount['description'])
+ row.write(16, total_discount)
+ row.write(17, ', '.join(descriptions))
+
+ total_payments = 0
+ payment_per_month = { month[0]: 0 for month in months_choices }
+ for payment in student.payments.values('month', 'value'):
+ value = payment['value']
+ month = payment['month']
+ total_payments += value
+ if month in payment_per_month:
+ payment_per_month[month] += value
+ row.write(18, total_payments)
+
+ row.write(19, student.total_fees)
+ row.write(20, student.balance)
+ row.write(21, student.total_paybacks)
+
+ i = 22
+ for month in months_choices:
+ row.write(i, payment_per_month[month[0]])
+ i += 1
+
+ return counter + 1
return counter
def write(self):
i += 1
counter = 0
- for user in self.users:
- counter = self.export_user(counter, user)
+ for student in self.students:
+ counter = self.export_user(counter, student)
class UsersExportView(UsersView):
@method_decorator(permission_required('is_staff'))
def get(self, *args, **kwargs):
super(UsersExportView, self).get(*args, **kwargs)
- book = UserXLSBook(self.users)
+ book = UserXLSBook(users = self.users)
book.write()
response = HttpResponse(mimetype="application/vnd.ms-excel")
response['Content-Disposition'] = 'attachment; filename=users.xls'