# -*- coding: utf-8 -*-
# Django settings for sandbox project.
-from django.utils.encoding import force_text
+from django.utils.encoding import force_str
import warnings
import os
import sys
DATABASES = {
'default': {
- 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'teleforma', # Or path to database file if using sqlite3.
- 'USER': 'teleforma', # Not used with sqlite3.
- 'PASSWORD': 'HMYsrZLEtYeBrvER', # Not used with sqlite3.
- 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
- 'PORT': '', # Set to empty string for default. Not used with sqlite3.
+ # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ # Or path to database file if using sqlite3.
+ 'NAME': os.environ.get('POSTGRES_DATABASE'),
+ # Not used with sqlite3.
+ 'USER': os.environ.get('POSTGRES_USER'),
+ # Not used with sqlite3.
+ 'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
+ # Set to empty string for localhost. Not used with sqlite3.
+ 'HOST': os.environ.get('DB_HOST'),
+ # Set to empty string for default. Not used with sqlite3.
+ 'PORT': os.environ.get('DB_PORT'),
}
}
'django.contrib.admin',
# 'south',
'teleforma',
+ 'teleforma.exam',
+ 'teleforma.webclass',
'sorl.thumbnail',
# 'django_extensions',
'dj_pagination',
TELECASTER_LIVE_STREAM_M_STREAMING_PORT = 8888
# CRFPA or AE or PRO
-TELEFORMA_E_LEARNING_TYPE = 'CRFPA'
+TELEFORMA_E_LEARNING_TYPE = 'AE'
+TELEFORMA_ORGANIZATION = 'Pré-Barreau - Avocats étrangers'
+TELEFORMA_SUBJECTS = ('Barreau', 'Avocats', 'étrangers', 'e-learning')
+TELEFORMA_DESCRIPTION = "E-learning Pré-Barreau - Avocats étrangers"
TELEFORMA_GLOBAL_TWEETER = False
TELEFORMA_PERIOD_TWEETER = True
TELEFORMA_EXAM_TOPIC_DEFAULT_DOC_TYPE_ID = 4
TELEFORMA_EXAM_SCRIPT_UPLOAD = True
TELEFORMA_REGISTER_DEFAULT_DOC_ID = 5506
-TELEFORMA_PERIOD_DEFAULT_ID = 22
-TELEFORMA_EXAM_MAX_SESSIONS = 15
+TELEFORMA_PERIOD_DEFAULT_ID = 11
+TELEFORMA_EXAM_MAX_SESSIONS = 10
TELEFORMA_EXAM_SCRIPT_MAX_SIZE = 20480000
TELEFORMA_EXAM_SCRIPT_SERVICE_URL = '/webviewer/teleforma.html'
+# courses choice in register form
+TELEFORMA_REGISTER_COURSE_CHOICE = (28, 29, 30, 31)
+# courses added to all registered users
+TELEFORMA_REGISTER_COURSE_AUTOREGISTER = (27, 34, 35, 36, 37)
+
TELECASTER_LIVE_STREAMING_SERVER = 'stream4.parisson.com'
TELECASTER_LIVE_STREAMING_PORT = 443
TELECASTER_LIVE_ICECAST_STREAMING_PORT = 8000
SESSION_ENGINE = "unique_session.backends.session_backend"
UNIQUE_SESSION_WHITELIST = (1, 2042)
+RECAPTCHA_PUBLIC_KEY = '6Ldq5DgbAAAAADkKg19JXlhx6F1XUQDsrXfXqSP6'
+RECAPTCHA_PRIVATE_KEY = '6Ldq5DgbAAAAAOVDOeF2kH8i2e2VSNHpqlinbpAJ'
+RECAPTCHA_REQUIRED_SCORE = 0.85
+
# SOUTH_MIGRATION_MODULES = {
# 'captcha': 'captcha.south_migrations',
# }
if user.quotas.count() and not professor and not user.is_superuser:
return "#"+str(user.id)
else:
- return force_text(user)
+ return force_str(user)
POSTMAN_SHOW_USER_AS = show_user_as
# -*- coding: utf-8 -*-
+from django.conf import settings
from django.http import HttpResponse
from django.conf.urls import include, url
from django.views.i18n import JavaScriptCatalog
RewriteEngine on
ProxyPreserveHost on
- RewriteCond %{HTTP:Connection} Upgrade [NC]
- RewriteCond %{HTTP:Upgrade} websocket [NC]
- RewriteRule ^/(.*)$ ws://channels:8000/$1 [P,L]
RewriteRule ^(.*)$ http://app:8000$1 [P,L]
ipdb==0.13.8
-django-debug-toolbar
\ No newline at end of file
+django-debug-toolbar==3.8.1
\ No newline at end of file
bigbluebutton-api-python==0.0.11
+channels==3.0.4
+channels_redis==3.4.0
docutils==0.17.1
-Django==3.2.3
+Django==3.2.13
+djangorestframework==3.13.1
# django-extensions==1.2.1
# django-timezones==0.2
# django-registration==3.1.2
# django-google-tools==1.1.0
django-nvd3==0.8.2
django-postman==4.2
-django-simple-captcha==0.5.14 # a maj
django-tinymce==3.3.0
-e git+https://git.parisson.com/git/django-unique-session.git@master#egg=django-unique-session
django-user-agents==0.4.0
+django-recaptcha==2.0.6
jxmlease==1.0.3
mysqlclient==2.0.3
numpy==1.20.3
# django-user-agents==0.3.0
# html5lib==1.1
+requests
sorl-thumbnail==12.7.0
unidecode==1.2.0
-xhtml2pdf==0.2.5
+weasyprint==52.5
xlrd==2.0.1
-xlwt==1.3.0
\ No newline at end of file
+xlwt==1.3.0
+psycopg2==2.8.6
+redis==3.5.3
+uwsgi==2.0.19
+daphne==3.0.2
+pymemcache==3.4.4
+django-debug-toolbar==3.2.1
+uvicorn[standard]==0.18.1
+httpx==0.23.3
+ipython
import csv
import datetime
+from django.conf import settings
from django.contrib import admin
from django.contrib.admin import SimpleListFilter
from django.contrib.auth.admin import UserAdmin
from django.core import serializers
from django.http import HttpResponse
from django.utils.translation import ugettext_lazy as _
+from django import forms
+from django.contrib.admin.helpers import ActionForm
+
from .exam.admin import QuotaInline
from .models.appointment import (Appointment, AppointmentJury,
model = Student
extra = 1
-# TODO fix max_length
-# class StudentGroupForm(ActionForm):
-# group_name = forms.CharField(_('Group'), required=False)
+class StudentGroupForm(ActionForm):
+ group_name = forms.CharField(label=_('Group'), max_length=255, required=False)
class StudentGroupAdmin(admin.ModelAdmin):
actions = ['export_xls', 'write_message', 'add_to_group']
action_form = StudentGroupForm
- def get_trainings(self, instance):
- return ' - '.join([str(training) for training in instance.trainings.all()])
+ def get_trainings(self, instance):
+ return ' - '.join([str(training) for training in instance.trainings.all()])
def student_name(self, instance):
return instance.user.last_name + ' ' + instance.user.first_name
serializers.serialize("json", queryset, stream=response)
return response
- def export_xls(self, request, queryset):
- book = UserXLSBook(students=queryset)
- book.write()
- response = HttpResponse(content_type="application/vnd.ms-excel")
- response['Content-Disposition'] = 'attachment; filename=users.xls'
- book.book.save(response)
- return response
+ def export_xls(self, request, queryset):
+ book = UserXLSBook(students=queryset)
+ book.write()
+ response = HttpResponse(content_type="application/vnd.ms-excel")
+ response['Content-Disposition'] = 'attachment; filename=users.xls'
+ book.book.save(response)
+ return response
- export_xls.short_description = "Export vers XLS"
+ export_xls.short_description = "Export vers XLS"
- def add_to_group(self, request, queryset):
- group_name = request.POST['group_name']
- group, c = StudentGroup.objects.get_or_create(name=group_name)
- for student in queryset:
- group.students.add(student)
- # self.message_user(request, ("Successfully added to group : %s") % (group_name,), messages.SUCCESS)
- add_to_group.short_description = "Ajouter au groupe"
+ def add_to_group(self, request, queryset):
+ group_name = request.POST['group_name']
+ group, c = StudentGroup.objects.get_or_create(name=group_name)
+ for student in queryset:
+ group.students.add(student)
+ # self.message_user(request, ("Successfully added to group : %s") % (group_name,), messages.SUCCESS)
+ add_to_group.short_description = "Ajouter au groupe"
class CorrectorAdmin(admin.ModelAdmin):
+++ /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 model 'Quota'
- db.create_table('exam_quota', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('course', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, to=orm['teleforma.Course'])),
- ('corrector', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, to=orm['auth.User'])),
- ('period', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Period'])),
- ('value', self.gf('django.db.models.fields.IntegerField')()),
- ('date_start', self.gf('django.db.models.fields.DateField')()),
- ('date_end', self.gf('django.db.models.fields.DateField')()),
- ))
- db.send_create_signal('exam', ['Quota'])
-
- # Adding model 'ScriptPage'
- db.create_table('exam_scriptpage', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
- ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
- ('mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, blank=True)),
- ('sha1', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
- ('script', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='pages', null=True, to=orm['exam.Script'])),
- ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
- ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100, blank=True)),
- ('rank', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
- ))
- db.send_create_signal('exam', ['ScriptPage'])
-
- # Adding model 'ScriptType'
- db.create_table('exam_scripttype', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('name', self.gf('django.db.models.fields.CharField')(max_length='512', blank=True)),
- ))
- db.send_create_signal('exam', ['ScriptType'])
-
- # Adding model 'Script'
- db.create_table('exam_script', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
- ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
- ('mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, blank=True)),
- ('sha1', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
- ('course', self.gf('django.db.models.fields.related.ForeignKey')(related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Course'])),
- ('period', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Period'])),
- ('session', self.gf('django.db.models.fields.CharField')(default='1', max_length=16)),
- ('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['exam.ScriptType'])),
- ('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='author_scripts', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
- ('corrector', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='corrector_scripts', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
- ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
- ('box_uuid', self.gf('django.db.models.fields.CharField')(max_length='256', blank=True)),
- ('score', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)),
- ('comments', self.gf('django.db.models.fields.TextField')(blank=True)),
- ('status', self.gf('django.db.models.fields.IntegerField')(default=1, blank=True)),
- ('reject_reason', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
- ('date_submitted', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
- ('date_marked', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
- ('date_rejected', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
- ('url', self.gf('django.db.models.fields.CharField')(max_length='2048', blank=True)),
- ))
- db.send_create_signal('exam', ['Script'])
-
-
- def backwards(self, orm):
- # Deleting model 'Quota'
- db.delete_table('exam_quota')
-
- # Deleting model 'ScriptPage'
- db.delete_table('exam_scriptpage')
-
- # Deleting model 'ScriptType'
- db.delete_table('exam_scripttype')
-
- # Deleting model 'Script'
- db.delete_table('exam_script')
-
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['date_start']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['-date_submitted']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- 'notes.note': {
- 'Meta': {'object_name': 'Note'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
- 'content': ('django.db.models.fields.TextField', [], {}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 6, 23, 0, 0)'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
- 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
- },
- 'notes.topic': {
- 'Meta': {'object_name': 'Topic'},
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
- },
- 'teleforma.course': {
- 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
- 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
- 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.department': {
- 'Meta': {'object_name': 'Department'},
- 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
- },
- 'teleforma.organization': {
- 'Meta': {'object_name': 'Organization'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.period': {
- 'Meta': {'object_name': 'Period'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- }
- }
-
- complete_apps = ['exam']
\ 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):
-
- # Changing field 'Script.reject_reason'
- db.alter_column('exam_script', 'reject_reason', self.gf('django.db.models.fields.CharField')(default='', max_length='256'))
-
- def backwards(self, orm):
-
- # Changing field 'Script.reject_reason'
- db.alter_column('exam_script', 'reject_reason', self.gf('django.db.models.fields.IntegerField')(null=True))
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['date_start']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['-date_submitted']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- 'notes.note': {
- 'Meta': {'object_name': 'Note'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
- 'content': ('django.db.models.fields.TextField', [], {}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 7, 15, 0, 0)'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
- 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
- },
- 'notes.topic': {
- 'Meta': {'object_name': 'Topic'},
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
- },
- 'teleforma.course': {
- 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
- 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
- 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.department': {
- 'Meta': {'object_name': 'Department'},
- 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
- },
- 'teleforma.organization': {
- 'Meta': {'object_name': 'Organization'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.period': {
- 'Meta': {'object_name': 'Period'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- }
- }
-
- complete_apps = ['exam']
\ 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):
-
- # Changing field 'Script.file'
- db.alter_column('exam_script', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=1024))
-
- # Changing field 'ScriptPage.file'
- db.alter_column('exam_scriptpage', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=1024))
-
- def backwards(self, orm):
-
- # Changing field 'Script.file'
- db.alter_column('exam_script', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=100))
-
- # Changing field 'ScriptPage.file'
- db.alter_column('exam_scriptpage', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=100))
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['corrector__username']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- 'notes.note': {
- 'Meta': {'object_name': 'Note'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
- 'content': ('django.db.models.fields.TextField', [], {}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
- 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
- },
- 'notes.topic': {
- 'Meta': {'object_name': 'Topic'},
- 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
- 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
- },
- 'teleforma.course': {
- 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
- 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
- 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.department': {
- 'Meta': {'object_name': 'Department'},
- 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
- },
- 'teleforma.organization': {
- 'Meta': {'object_name': 'Organization'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.period': {
- 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- }
- }
-
- complete_apps = ['exam']
\ 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 field 'Quota.script_type'
- db.add_column('exam_quota', 'script_type',
- self.gf('django.db.models.fields.related.ForeignKey')(related_name='quotas', null=True, on_delete=models.SET_NULL, to=orm['exam.ScriptType']),
- keep_default=False)
-
-
- def backwards(self, orm):
- # Deleting field 'Quota.script_type'
- db.delete_column('exam_quota', 'script_type_id')
-
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- 'teleforma.course': {
- 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
- 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
- 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
- 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.department': {
- 'Meta': {'object_name': 'Department'},
- 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
- },
- 'teleforma.organization': {
- 'Meta': {'object_name': 'Organization'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- },
- 'teleforma.period': {
- 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
- 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
- }
- }
-
- complete_apps = ['exam']
\ No newline at end of file
+++ /dev/null
-# -*- coding: utf-8 -*-
-import 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 'Quota.session'
- db.add_column('exam_quota', 'session',
- self.gf('django.db.models.fields.CharField')(default='1', max_length=16),
- keep_default=False)
-
-
- # Changing field 'Quota.course'
- db.alter_column('exam_quota', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['teleforma.Course']))
-
- # Changing field 'Quota.corrector'
- db.alter_column('exam_quota', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['auth.User']))
-
- def backwards(self, orm):
- # Deleting field 'Quota.session'
- db.delete_column('exam_quota', 'session')
-
-
- # Changing field 'Quota.course'
- db.alter_column('exam_quota', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['teleforma.Course']))
-
- # Changing field 'Quota.corrector'
- db.alter_column('exam_quota', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['auth.User']))
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- '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'}),
- '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'}),
- '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.department': {
- 'Meta': {'object_name': 'Department'},
- 'default_period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'department'", '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.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.period': {
- 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
- 'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': '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'}),
- 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
- }
- }
-
- complete_apps = ['exam']
\ No newline at end of file
+++ /dev/null
-# -*- coding: utf-8 -*-
-import datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
-
- # Changing field 'Script.mime_type'
- db.alter_column('exam_script', 'mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, null=True))
-
- # Changing field 'ScriptPage.mime_type'
- db.alter_column('exam_scriptpage', 'mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, null=True))
-
- def backwards(self, orm):
-
- # Changing field 'Script.mime_type'
- db.alter_column('exam_script', 'mime_type', self.gf('django.db.models.fields.CharField')(default='', max_length=128))
-
- # Changing field 'ScriptPage.mime_type'
- db.alter_column('exam_scriptpage', 'mime_type', self.gf('django.db.models.fields.CharField')(default='', max_length=128))
-
- 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'})
- },
- 'exam.quota': {
- 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_end': ('django.db.models.fields.DateField', [], {}),
- 'date_start': ('django.db.models.fields.DateField', [], {}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'value': ('django.db.models.fields.IntegerField', [], {})
- },
- 'exam.script': {
- 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
- 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
- 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
- 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
- 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
- 'type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
- 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scriptpage': {
- 'Meta': {'object_name': 'ScriptPage'},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
- 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
- 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'exam.scripttype': {
- 'Meta': {'object_name': 'ScriptType'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
- },
- '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.course': {
- 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
- 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
- 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
- 'has_exam_scripts': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'last_professor_sent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Professor']", 'null': 'True', 'blank': 'True'}),
- 'magistral': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'oral_1': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'oral_2': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'oral_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'courses'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
- 'procedure': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'quiz': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['quiz.Quiz']", 'null': 'True', 'blank': 'True'}),
- 'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
- 'title_tweeter': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
- 'written_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
- },
- 'teleforma.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.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.period': {
- 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
- 'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_close_accounts': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_exam_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'date_inscription_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_inscription_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
- 'department': ('telemeta.models.core.ForeignKey', [], {'default': 'None', 'related_name': "'period'", 'null': 'True', 'blank': 'True', 'to': "orm['teleforma.Department']"}),
- 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_open': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'message_local': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'message_platform': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
- 'nb_script': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
- 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
- },
- 'teleforma.professor': {
- 'Meta': {'ordering': "['user__last_name']", 'object_name': 'Professor'},
- 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
- 'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"})
- }
- }
-
- complete_apps = ['exam']
\ 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 model 'Quota'
+ db.create_table('exam_quota', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('course', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, to=orm['teleforma.Course'])),
+ ('corrector', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, to=orm['auth.User'])),
+ ('period', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='quotas', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Period'])),
+ ('value', self.gf('django.db.models.fields.IntegerField')()),
+ ('date_start', self.gf('django.db.models.fields.DateField')()),
+ ('date_end', self.gf('django.db.models.fields.DateField')()),
+ ))
+ db.send_create_signal('exam', ['Quota'])
+
+ # Adding model 'ScriptPage'
+ db.create_table('exam_scriptpage', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, blank=True)),
+ ('sha1', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('script', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='pages', null=True, to=orm['exam.Script'])),
+ ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
+ ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100, blank=True)),
+ ('rank', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
+ ))
+ db.send_create_signal('exam', ['ScriptPage'])
+
+ # Adding model 'ScriptType'
+ db.create_table('exam_scripttype', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('name', self.gf('django.db.models.fields.CharField')(max_length='512', blank=True)),
+ ))
+ db.send_create_signal('exam', ['ScriptType'])
+
+ # Adding model 'Script'
+ db.create_table('exam_script', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, blank=True)),
+ ('sha1', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('course', self.gf('django.db.models.fields.related.ForeignKey')(related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Course'])),
+ ('period', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['teleforma.Period'])),
+ ('session', self.gf('django.db.models.fields.CharField')(default='1', max_length=16)),
+ ('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='scripts', null=True, on_delete=models.SET_NULL, to=orm['exam.ScriptType'])),
+ ('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='author_scripts', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
+ ('corrector', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='corrector_scripts', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
+ ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
+ ('box_uuid', self.gf('django.db.models.fields.CharField')(max_length='256', blank=True)),
+ ('score', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)),
+ ('comments', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('status', self.gf('django.db.models.fields.IntegerField')(default=1, blank=True)),
+ ('reject_reason', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
+ ('date_submitted', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('date_marked', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('date_rejected', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('url', self.gf('django.db.models.fields.CharField')(max_length='2048', blank=True)),
+ ))
+ db.send_create_signal('exam', ['Script'])
+
+
+ def backwards(self, orm):
+ # Deleting model 'Quota'
+ db.delete_table('exam_quota')
+
+ # Deleting model 'ScriptPage'
+ db.delete_table('exam_scriptpage')
+
+ # Deleting model 'ScriptType'
+ db.delete_table('exam_scripttype')
+
+ # Deleting model 'Script'
+ db.delete_table('exam_script')
+
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['date_start']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['-date_submitted']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ 'notes.note': {
+ 'Meta': {'object_name': 'Note'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 6, 23, 0, 0)'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
+ },
+ 'notes.topic': {
+ 'Meta': {'object_name': 'Topic'},
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.period': {
+ 'Meta': {'object_name': 'Period'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['exam']
\ 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):
+
+ # Changing field 'Script.reject_reason'
+ db.alter_column('exam_script', 'reject_reason', self.gf('django.db.models.fields.CharField')(default='', max_length='256'))
+
+ def backwards(self, orm):
+
+ # Changing field 'Script.reject_reason'
+ db.alter_column('exam_script', 'reject_reason', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['date_start']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['-date_submitted']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ 'notes.note': {
+ 'Meta': {'object_name': 'Note'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 7, 15, 0, 0)'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
+ },
+ 'notes.topic': {
+ 'Meta': {'object_name': 'Topic'},
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.period': {
+ 'Meta': {'object_name': 'Period'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['exam']
\ 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):
+
+ # Changing field 'Script.file'
+ db.alter_column('exam_script', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=1024))
+
+ # Changing field 'ScriptPage.file'
+ db.alter_column('exam_scriptpage', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=1024))
+
+ def backwards(self, orm):
+
+ # Changing field 'Script.file'
+ db.alter_column('exam_script', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=100))
+
+ # Changing field 'ScriptPage.file'
+ db.alter_column('exam_scriptpage', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=100))
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['corrector__username']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ 'notes.note': {
+ 'Meta': {'object_name': 'Note'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2014, 9, 2, 0, 0)'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"})
+ },
+ 'notes.topic': {
+ 'Meta': {'object_name': 'Topic'},
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.period': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['exam']
\ 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 field 'Quota.script_type'
+ db.add_column('exam_quota', 'script_type',
+ self.gf('django.db.models.fields.related.ForeignKey')(related_name='quotas', null=True, on_delete=models.SET_NULL, to=orm['exam.ScriptType']),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Quota.script_type'
+ db.delete_column('exam_quota', 'script_type_id')
+
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ 'teleforma.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'date_modified': ('telemeta.models.core.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('telemeta.models.core.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'magistral': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'number': ('telemeta.models.core.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'obligation': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'synthesis_note': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'title_tweeter': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['teleforma.Period']", 'blank': 'True', 'null': 'True'}),
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'domain': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'organization': ('telemeta.models.core.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.period': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+ 'description': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['exam']
\ No newline at end of file
--- /dev/null
+# -*- coding: utf-8 -*-
+import 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 'Quota.session'
+ db.add_column('exam_quota', 'session',
+ self.gf('django.db.models.fields.CharField')(default='1', max_length=16),
+ keep_default=False)
+
+
+ # Changing field 'Quota.course'
+ db.alter_column('exam_quota', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['teleforma.Course']))
+
+ # Changing field 'Quota.corrector'
+ db.alter_column('exam_quota', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['auth.User']))
+
+ def backwards(self, orm):
+ # Deleting field 'Quota.session'
+ db.delete_column('exam_quota', 'session')
+
+
+ # Changing field 'Quota.course'
+ db.alter_column('exam_quota', 'course_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['teleforma.Course']))
+
+ # Changing field 'Quota.corrector'
+ db.alter_column('exam_quota', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['auth.User']))
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ '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'}),
+ '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'}),
+ '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.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'department'", '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.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.period': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+ 'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': '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'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
+ }
+ }
+
+ complete_apps = ['exam']
\ No newline at end of file
--- /dev/null
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Changing field 'Script.mime_type'
+ db.alter_column('exam_script', 'mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, null=True))
+
+ # Changing field 'ScriptPage.mime_type'
+ db.alter_column('exam_scriptpage', 'mime_type', self.gf('django.db.models.fields.CharField')(max_length=128, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'Script.mime_type'
+ db.alter_column('exam_script', 'mime_type', self.gf('django.db.models.fields.CharField')(default='', max_length=128))
+
+ # Changing field 'ScriptPage.mime_type'
+ db.alter_column('exam_scriptpage', 'mime_type', self.gf('django.db.models.fields.CharField')(default='', max_length=128))
+
+ 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'})
+ },
+ 'exam.quota': {
+ 'Meta': {'ordering': "['-date_end']", 'object_name': 'Quota'},
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_end': ('django.db.models.fields.DateField', [], {}),
+ 'date_start': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'script_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'quotas'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'exam.script': {
+ 'Meta': {'ordering': "['date_added']", 'object_name': 'Script'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'author_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'box_uuid': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'corrector': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Course']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_marked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_rejected': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_submitted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'reject_reason': ('django.db.models.fields.CharField', [], {'max_length': "'256'", 'blank': 'True'}),
+ 'score': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['exam.ScriptType']"}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': "'2048'", 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scriptpage': {
+ 'Meta': {'object_name': 'ScriptPage'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ 'rank': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pages'", 'null': 'True', 'to': "orm['exam.Script']"}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ },
+ 'exam.scripttype': {
+ 'Meta': {'object_name': 'ScriptType'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'512'", 'blank': 'True'})
+ },
+ '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.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'has_exam_scripts': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_professor_sent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Professor']", 'null': 'True', 'blank': 'True'}),
+ 'magistral': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_1': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_2': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'courses'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'procedure': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'quiz': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['quiz.Quiz']", 'null': 'True', 'blank': 'True'}),
+ 'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'title_tweeter': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'written_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'teleforma.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.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.period': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+ 'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_close_accounts': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_exam_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inscription_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inscription_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'department': ('telemeta.models.core.ForeignKey', [], {'default': 'None', 'related_name': "'period'", 'null': 'True', 'blank': 'True', 'to': "orm['teleforma.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_open': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'message_local': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'message_platform': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nb_script': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
+ },
+ 'teleforma.professor': {
+ 'Meta': {'ordering': "['user__last_name']", 'object_name': 'Professor'},
+ 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"})
+ }
+ }
+
+ complete_apps = ['exam']
\ No newline at end of file
import datetime
from io import BytesIO
-from captcha.fields import CaptchaField
+from captcha.fields import ReCaptchaField
from django import forms
from django.conf import settings
from django.contrib.auth.models import User
class BBBConferenceForm(ModelForm):
class Meta:
model = Conference
+ fields = '__all__'
class UserProfileForm(ModelForm):
class Meta:
widget=forms.Select())
# no model
- captcha = CaptchaField()
+ captcha = ReCaptchaField()
accept = BooleanField()
class Meta:
return image
#width, height = get_image_dimensions(image)
#ratio = float(height) / float(width)
- #if ratio > 2.5 or ratio < 1:
+ # if ratio > 2.5 or ratio < 1:
# raise ValidationError({'portrait': "L'image n'est pas au format portrait."})
NEW_HEIGHT = 230
NEW_WIDTH = 180
- #if width < NEW_WIDTH or height < NEW_HEIGHT:
+ # if width < NEW_WIDTH or height < NEW_HEIGHT:
# raise ValidationError({'portrait': "L'image est trop petite. Elle doit faire au moins %spx de large et %spx de hauteur." % (NEW_WIDTH, NEW_HEIGHT)})
- # resize image
- img = Image.open(image.file)
- new_image = img.resize((NEW_WIDTH, NEW_HEIGHT), Image.ANTIALIAS)
- if new_image.mode == "RGBA":
- new_image = new_image.convert("RGB")
+ # resize image
+ img = Image.open(image.file)
+ new_image = img.resize((NEW_WIDTH, NEW_HEIGHT), Image.ANTIALIAS)
+ if new_image.mode == "RGBA":
+ new_image = new_image.convert("RGB")
- temp = BytesIO()
- new_image.save(temp, 'jpeg')
- temp.seek(0)
- return SimpleUploadedFile('temp', temp.read())
+ temp = BytesIO()
+ new_image.save(temp, 'jpeg')
+ temp.seek(0)
+ return SimpleUploadedFile('temp', temp.read())
def save(self, commit=True):
required=True)
# no model
- captcha = CaptchaField()
+ captcha = ReCaptchaField()
accept = BooleanField()
class Meta:
queryset=Course.objects.all().exclude(title="Aucune").order_by('title'),
widget=forms.CheckboxSelectMultiple())
# no model
- captcha = CaptchaField()
+ captcha = ReCaptchaField()
# accept = BooleanField()
class Meta:
--- /dev/null
+from django.conf import settings
+from django.apps import apps
+from django.core.management.base import BaseCommand, CommandError
+import django.db.models as models
+
+class Command(BaseCommand):
+ help = "Issue SQL commands to fix boolean fields after MySQL migration"
+ admin_email = 'webmaster@parisson.com'
+
+ def handle(self, *args, **options):
+ for app, _ in apps.all_models.items():
+ app_models = apps.get_app_config(app).get_models()
+ for model in app_models:
+ table = model._meta.db_table
+ for field in model._meta.fields:
+ if isinstance(field, models.BooleanField):
+ field_name = field.column
+ print(f"alter table {table} alter {field_name} type boolean using case when {field_name}=0 then false else true end;")
-# Generated by Django 3.2.3 on 2021-06-01 15:28
+# Generated by Django 3.2.13 on 2023-04-26 11:59
from django.conf import settings
from django.db import migrations, models
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('public_id', models.CharField(blank=True, max_length=255, verbose_name='public_id')),
- ('session', models.CharField(choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10'), ('11', '11'), ('12', '12'), ('13', '13'), ('14', '14'), ('15', '15')], default='1', max_length=16, verbose_name='session')),
+ ('session', models.CharField(choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')], default='1', max_length=16, verbose_name='session')),
('comment', teleforma.fields.ShortTextField(blank=True, max_length=255, verbose_name='comment')),
('date_begin', models.DateTimeField(blank=True, null=True, verbose_name='begin date')),
('date_end', models.DateTimeField(blank=True, null=True, verbose_name='end date')),
('title_tweeter', models.CharField(max_length=255, verbose_name='tweeter title')),
('date_modified', models.DateTimeField(auto_now=True, null=True, verbose_name='date modified')),
('number', models.IntegerField(blank=True, null=True, verbose_name='number')),
- ('synthesis_note', models.BooleanField(verbose_name='synthesis note')),
- ('obligation', models.BooleanField(verbose_name='obligations')),
- ('magistral', models.BooleanField(verbose_name='magistral')),
- ('procedure', models.BooleanField(verbose_name='procedure')),
- ('written_speciality', models.BooleanField(verbose_name='written_speciality')),
- ('oral_speciality', models.BooleanField(verbose_name='oral_speciality')),
- ('oral_1', models.BooleanField(verbose_name='oral_1')),
- ('oral_2', models.BooleanField(verbose_name='oral_2')),
('has_exam_scripts', models.BooleanField(default=True, verbose_name="copies d'examen")),
],
options={
('restricted', models.BooleanField(default=False, help_text="Cocher cette case lorsque vous voulez que l'étudiant puisse se connecter, mais ne pas avoir accès aux cours.", verbose_name='Accès restreint')),
('portrait', models.ImageField(blank=True, max_length=500, null=True, upload_to='portraits/')),
('platform_only', models.BooleanField(verbose_name='e-learning platform only')),
- ('application_fees', models.BooleanField(blank=True, default=True, verbose_name='application fees')),
+ ('application_fees', models.BooleanField(blank=True, default=False, verbose_name='application fees')),
('subscription_fees', models.FloatField(blank=True, help_text='€', null=True, verbose_name='subscription fees')),
('promo_code', models.CharField(blank=True, max_length=100, verbose_name='promo code')),
('date_registered', models.DateTimeField(auto_now_add=True, null=True, verbose_name='registration date')),
('payment_schedule', models.CharField(blank=True, choices=[('split', 'en plusieurs fois'), ('once', 'en une seule fois')], default='split', max_length=64, null=True, verbose_name='échéancier de paiement')),
('comment', models.TextField(blank=True, null=True, verbose_name='commentaire')),
('receipt_id', models.IntegerField(blank=True, null=True, unique=True, verbose_name='numéro de facture')),
+ ('courses', models.ManyToManyField(blank=True, related_name='student', to='teleforma.Course', verbose_name='courses')),
('iej', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='student', to='teleforma.iej', verbose_name='iej')),
- ('options', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='options_students', to='teleforma.course', verbose_name='options')),
- ('oral_1', models.ForeignKey(blank=True, help_text='Matière d’oral de langue (en option)', limit_choices_to={'oral_1': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='oral_1_students', to='teleforma.course', verbose_name='oral de langue (option)')),
- ('oral_2', models.ForeignKey(blank=True, help_text='Matière d’oral technique 2 (en option)', limit_choices_to={'oral_2': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='oral_2_students', to='teleforma.course', verbose_name='oral 2 (option)')),
- ('oral_speciality', models.ForeignKey(blank=True, help_text='Matière d’oral de spécialité (matière incluse dans la formation approfondie, en option pour toutes les autres formations)', limit_choices_to={'oral_speciality': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='oral_speciality_students', to='teleforma.course', verbose_name='oral speciality')),
- ('period', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='student', to='teleforma.period', verbose_name='period')),
- ('procedure', models.ForeignKey(blank=True, help_text='Matière de procédure', limit_choices_to={'procedure': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='procedure_students', to='teleforma.course', verbose_name='procedure')),
+ ('period', models.ManyToManyField(blank=True, related_name='student', to='teleforma.Period', verbose_name='period')),
],
options={
- 'verbose_name': 'Student',
- 'verbose_name_plural': 'Students',
- 'db_table': 'teleforma_student',
- 'ordering': ['user__last_name', '-date_subscribed'],
- },
- ),
- migrations.CreateModel(
- name='WebClassGroup',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=255, verbose_name='name')),
- ('iejs', models.ManyToManyField(blank=True, related_name='web_class_group', to='teleforma.IEJ', verbose_name='IEJ')),
- ],
- options={
- 'verbose_name': 'web class group',
- 'verbose_name_plural': 'web class group',
- 'ordering': ['name'],
+ 'verbose_name': 'AE student',
+ 'verbose_name_plural': 'AE students',
+ 'db_table': 'teleforma_ae_student',
+ 'ordering': ['user__last_name'],
},
),
migrations.CreateModel(
('available', models.BooleanField(verbose_name='available')),
('platform_only', models.BooleanField(verbose_name='e-learning platform only')),
('duration', models.IntegerField(default=0, verbose_name='Durée en heures')),
- ('magistral', models.ManyToManyField(blank=True, related_name='training_magistral', to='teleforma.CourseType', verbose_name='magistral')),
- ('obligation', models.ManyToManyField(blank=True, related_name='training_obligation', to='teleforma.CourseType', verbose_name='obligations')),
- ('options', models.ManyToManyField(blank=True, related_name='training_options', to='teleforma.CourseType', verbose_name='options')),
- ('oral_1', models.ManyToManyField(blank=True, related_name='training_oral_1', to='teleforma.CourseType', verbose_name='oral 1')),
- ('oral_2', models.ManyToManyField(blank=True, related_name='training_oral_2', to='teleforma.CourseType', verbose_name='oral 2')),
- ('oral_speciality', models.ManyToManyField(blank=True, related_name='training_oral_speciality', to='teleforma.CourseType', verbose_name='oral speciality')),
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='children', to='teleforma.training', verbose_name='parent')),
('period', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='training', to='teleforma.period', verbose_name='period')),
- ('procedure', models.ManyToManyField(blank=True, related_name='training_procedure', to='teleforma.CourseType', verbose_name='procedure')),
- ('synthesis_note', models.ManyToManyField(blank=True, related_name='training_synthesis_note', to='teleforma.CourseType', verbose_name='synthesis note')),
- ('written_speciality', models.ManyToManyField(blank=True, related_name='training_written_speciality', to='teleforma.CourseType', verbose_name='written speciality')),
],
options={
'verbose_name': 'training',
'db_table': 'teleforma_student_groups',
},
),
- migrations.AddField(
- model_name='student',
- name='training',
- field=models.ForeignKey(blank=True, limit_choices_to={'available': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='student_training', to='teleforma.training', verbose_name='training'),
- ),
migrations.AddField(
model_name='student',
name='trainings',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student', to=settings.AUTH_USER_MODEL, unique=True, verbose_name='user'),
),
- migrations.AddField(
- model_name='student',
- name='written_speciality',
- field=models.ForeignKey(blank=True, help_text='Matière juridique de spécialité', limit_choices_to={'written_speciality': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='written_speciality_2students', to='teleforma.course', verbose_name='written speciality'),
- ),
migrations.CreateModel(
name='Room',
fields=[
('language', models.CharField(blank=True, max_length=255, verbose_name='Language')),
('telephone', models.CharField(blank=True, max_length=255, verbose_name='Telephone')),
('expiration_date', models.DateField(blank=True, null=True, verbose_name='Expiration_date')),
- ('init_password', models.BooleanField(verbose_name='Password initialized')),
+ ('init_password', models.BooleanField(default=False, verbose_name='Password initialized')),
('wifi_login', models.CharField(blank=True, max_length=255, verbose_name='WiFi login')),
('wifi_pass', models.CharField(blank=True, max_length=255, verbose_name='WiFi pass')),
('birthday', models.DateField(blank=True, help_text='jj/mm/aaaa', null=True, verbose_name='birthday')),
('is_published', models.BooleanField(verbose_name='published')),
('mime_type', models.CharField(blank=True, max_length=255, verbose_name='mime type')),
('weight', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4)], default=1, verbose_name='weight')),
- ('session', models.CharField(choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10'), ('11', '11'), ('12', '12'), ('13', '13'), ('14', '14'), ('15', '15')], default='1', max_length=16, verbose_name='session')),
+ ('session', models.CharField(choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')], default='1', max_length=16, verbose_name='session')),
('is_annal', models.BooleanField(verbose_name='annal')),
('annal_year', models.IntegerField(blank=True, null=True, verbose_name='year')),
('file', models.FileField(blank=True, db_column='filename', max_length=1024, upload_to='items/%Y/%m/%d', verbose_name='file')),
name='periods',
field=models.ManyToManyField(blank=True, related_name='courses', to='teleforma.Period', verbose_name='Périodes associées'),
),
+ migrations.AddField(
+ model_name='course',
+ name='types',
+ field=models.ManyToManyField(blank=True, related_name='course', to='teleforma.CourseType', verbose_name='types'),
+ ),
migrations.CreateModel(
name='Corrector',
fields=[
name='room',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conference', to='teleforma.room', verbose_name='room'),
),
- migrations.AddField(
- model_name='conference',
- name='web_class_group',
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='conferences', to='teleforma.webclassgroup', verbose_name='web class group'),
- ),
migrations.CreateModel(
name='AppointmentSlot',
fields=[
'ordering': ('id',),
},
),
- migrations.CreateModel(
- name='AEStudent',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('platform_only', models.BooleanField(verbose_name='platform only')),
- ('courses', models.ManyToManyField(blank=True, related_name='ae_student', to='teleforma.Course', verbose_name='courses')),
- ('period', models.ManyToManyField(blank=True, related_name='ae_student', to='teleforma.Period', verbose_name='period')),
- ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ae_student', to=settings.AUTH_USER_MODEL, unique=True, verbose_name='user')),
- ],
- options={
- 'verbose_name': 'AE student',
- 'db_table': 'teleforma_ae_student',
- 'ordering': ['user__last_name'],
- },
- ),
migrations.CreateModel(
name='Appointment',
fields=[
from .core import *
from .crfpa import *
# from pro import *
-from .ae import *
from .messages import *
from .appointment import *
+++ /dev/null
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-"""
- teleforma
-
- Copyright (c) 2012 Guillaume Pellerin <yomguy@parisson.com>
-
-# This software is governed by the CeCILL license under French law and
-# abiding by the rules of distribution of free software. You can use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-
-# As a counterpart to the access to the source code and rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty and the software's author, the holder of the
-# economic rights, and the successive licensors have only limited
-# liability.
-
-# In this respect, the user's attention is drawn to the risks associated
-# with loading, using, modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean that it is complicated to manipulate, and that also
-# therefore means that it is reserved for developers and experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and, more generally, to use and operate it in the
-# same conditions as regards security.
-
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-
-# Author: Guillaume Pellerin <yomguy@parisson.com>
-"""
-
-import django.db.models as models
-from django.contrib.auth.models import User
-from django.utils.translation import ugettext_lazy as _
-
-from ..models import app_label
-from ..models.core import MetaCore
-
-
-class AEStudent(models.Model):
-
- user = models.ForeignKey(
- User, related_name='ae_student', verbose_name=_('user'), unique=True, on_delete=models.CASCADE)
- period = models.ManyToManyField('Period', related_name='ae_student', verbose_name=_('period'),
- blank=True)
- platform_only = models.BooleanField(_('platform only'))
- courses = models.ManyToManyField('Course', related_name="ae_student",
- verbose_name=_('courses'),
- blank=True)
-
- def __str__(self):
- try:
- return self.user.last_name + ' ' + self.user.first_name
- except:
- return ''
-
- class Meta(MetaCore):
- db_table = app_label + '_' + 'ae_student'
- verbose_name = _('AE student')
- ordering = ['user__last_name']
periods = models.ManyToManyField('Period', related_name="courses",
verbose_name=u'Périodes associées',
- blank=True, null=True)
+ blank=True)
types = models.ManyToManyField('CourseType', related_name="course",
verbose_name=_('types'),
- blank=True, null=True)
+ blank=True)
def __str__(self):
return self.title
status = models.IntegerField(
_('status'), choices=STATUS_CHOICES, default=2)
streaming = models.BooleanField(_('streaming'), default=True)
- web_class_group = models.ForeignKey('WebClassGroup', related_name='conferences', verbose_name=_('web class group'),
- blank=True, null=True, on_delete=models.SET_NULL)
+ # web_class_group = models.ForeignKey('WebClassGroup', related_name='conferences', verbose_name=_('web class group'),
+ # blank=True, null=True, on_delete=models.SET_NULL)
@property
def description(self):
@property
def url(self):
if self.server.type == 'stream-m':
- return 'https://' + self.server.host + '/stream/video/consume/' + self.slug
+ return 'https://' + self.server.host + '/stream/video/consume/' + self.slug
else:
return 'https://' + self.server.host + '/stream/audio/' + self.slug
blank=True, null=True, on_delete=models.SET_NULL)
period = models.ForeignKey('Period', related_name='media', verbose_name=_('period'),
null=True, blank=True, on_delete=models.SET_NULL)
- if HAS_TELEMETA:
- item = models.ForeignKey(MediaItem, related_name='media',
- verbose_name='item', blank=True, null=True, on_delete=models.SET_NULL)
type = models.CharField(
_('type'), choices=streaming_choices, max_length=32)
readers = models.ManyToManyField(User, related_name="media", verbose_name=_('readers'),
else:
return '%c-%c' % (self.start_letter, self.end_letter)
-class StudentMixin(Model):
- user = models.ForeignKey(User, related_name='student', verbose_name=_('user'), unique=True)
+class StudentMixin(models.Model):
+ user = models.ForeignKey(User, related_name='student', verbose_name=_('user'), unique=True, on_delete=models.CASCADE)
trainings = models.ManyToManyField('Training', related_name='student_trainings', verbose_name=_('trainings'),
- blank=True, null=True)
+ blank=True)
iej = models.ForeignKey('IEJ', related_name='student', verbose_name=_('iej'),
blank=True, null=True, on_delete=models.SET_NULL)
restricted = models.BooleanField("Accès restreint", help_text="Cocher cette case lorsque vous voulez que l'étudiant puisse se connecter, mais ne pas avoir accès aux cours.", default=False)
from django.utils.translation import ugettext_lazy as _
from tinymce.models import HTMLField
-from ..models.core import (Course, Media, MetaCore, payment_choices,
+from ..models.core import (Course, Media, MetaCore, StudentMixin, payment_choices,
payment_schedule_choices)
app_label = 'teleforma'
code = models.CharField(_('code'), max_length=255)
name = models.CharField(_('name'), max_length=255, blank=True)
description = models.CharField(_('description'), max_length=512, blank=True)
- period = models.ForeignKey('Period', related_name='training', verbose_name=_('period'), blank=True, null=True)
- parent = models.ForeignKey('Training', related_name='children', verbose_name=_('parent'), blank=True, null=True)
+ period = models.ForeignKey('Period', related_name='training', verbose_name=_('period'), blank=True, null=True, on_delete=models.SET_NULL)
+ parent = models.ForeignKey('Training', related_name='children', verbose_name=_('parent'), blank=True, null=True, on_delete=models.SET_NULL)
if settings.TELEFORMA_E_LEARNING_TYPE != 'AE':
synthesis_note = models.ManyToManyField('CourseType', related_name="training_synthesis_note", verbose_name=_('synthesis note'),
- blank=True, null=True)
+ blank=True)
obligation = models.ManyToManyField('CourseType', related_name="training_obligation",
verbose_name=_('obligations'),
- blank=True, null=True)
+ blank=True)
procedure = models.ManyToManyField('CourseType', related_name="training_procedure",
verbose_name=_('procedure'),
- blank=True, null=True)
+ blank=True)
written_speciality = models.ManyToManyField('CourseType', related_name="training_written_speciality",
verbose_name=_('written speciality'),
- blank=True, null=True)
+ blank=True)
oral_speciality = models.ManyToManyField('CourseType', related_name="training_oral_speciality",
verbose_name=_('oral speciality'),
- blank=True, null=True)
+ blank=True)
oral_1 = models.ManyToManyField('CourseType', related_name="training_oral_1",
verbose_name=_('oral 1'),
- blank=True, null=True)
+ blank=True)
oral_2 = models.ManyToManyField('CourseType', related_name="training_oral_2",
verbose_name=_('oral 2'),
- blank=True, null=True)
+ blank=True)
options = models.ManyToManyField('CourseType', related_name="training_options",
verbose_name=_('options'),
- blank=True, null=True)
+ blank=True)
magistral = models.ManyToManyField('CourseType', related_name="training_magistral",
verbose_name=_('magistral'),
- blank=True, null=True)
+ blank=True)
cost = models.FloatField(_('cost'), blank=True, null=True)
cost_elearning_fascicle = models.FloatField(
else:
class Student(StudentMixin):
- period = ManyToManyField('Period', related_name='student', verbose_name=_('period'),
- blank=True, null=True)
- courses = ManyToManyField('Course', related_name="student",
+ period = models.ManyToManyField('Period', related_name='student', verbose_name=_('period'),
+ blank=True)
+ courses = models.ManyToManyField('Course', related_name="student",
verbose_name=_('courses'),
- blank=True, null=True)
+ blank=True)
# to stay in sync with crfpa
training = None
_('Title'), max_length=255, null=True, blank=True)
text = models.TextField('Texte', blank=True)
video = models.ForeignKey(Media, verbose_name="Video", null=True, blank=True, on_delete=models.SET_NULL)
- modified_at = models.DateTimeField(u'Date de modification', auto_now=True, default=datetime.datetime.now)
+ modified_at = models.DateTimeField(u'Date de modification', auto_now=True)
periods = models.ManyToManyField('Period', related_name="home_texts",
verbose_name=u'Périodes associées',
blank=True)
verbose_name=_('corrected document'),
blank=True, null=True)
suscribers = models.ManyToManyField(User, related_name="seminar", verbose_name=_('suscribers'),
- blank=True, null=True)
+ blank=True)
date_added = models.DateTimeField(_('date added'), auto_now_add=True)
date_modified = models.DateTimeField(_('date modified'), auto_now=True)
{% trans "Pour les questions concernant l'organisation des cours, le planning, les documents de cours ou les copies, adressez-vous à <b>Admin-CRFPA</b>." %}
<br/>
{% trans "Pour les questions concernant uniquement l'accès à la plateforme et aux médias vidéo ou audio, lire d'abord" %}
- <a href="{% url teleforma-help %}">la page
+ <a href="{% url 'teleforma-help' %}">la page
d'aide</a> {% trans "puis adressez-vous à <b>Support technique</b>." %}
<br/><br/>
<br/><br/><br/>
-<a href="{% url teleforma-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/teleforma/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
+<a href="{% url 'teleforma-registration-view' username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/teleforma/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
<br><br><br>
Une fois votre dossier reçu et confirmé par nos services, vous recevrez un mail vous invitant à procéder au règlement des arrhes par carte bancaire. <b>Votre inscription ne sera validée qu’au terme de cette ultime étape.</b>
{% block courses %}
{% for c in all_courses %}
{% with c.course as course %}
- <li><a href="{% url teleforma-annals-course course.id %}">{{ course.title }}</a></li>
+ <li><a href="{% url 'teleforma-annals-course' course.id %}">{{ course.title }}</a></li>
{% endwith %}
{% endfor %}
{% endblock courses %}
<ul>
{% block iej %}
{% for iej in iejs %}
- <li><a href="{% url teleforma-annals-iej iej.id %}">{{ iej.name|lower|capfirst }}</a></li>
+ <li><a href="{% url 'teleforma-annals-iej' iej.id %}">{{ iej.name|lower|capfirst }}</a></li>
{% endfor %}
{% endblock iej %}
</ul>
<tbody>
{% for doc in docs %}
<tr>
- <td {% if forloop.first %}class="border-top"{% endif %} width="50%">{% if doc.file %}<a href="{% url teleforma-document-view doc.id %}" target="_blank" title="{% trans "View" %}"><img src="/static//teleforma/images/application-msword.png" style="vertical-align:middle" alt="" />{% endif %} {{ doc.title }}{% if doc.file %}</a>{% endif %}</td>
+ <td {% if forloop.first %}class="border-top"{% endif %} width="50%">{% if doc.file %}<a href="{% url 'teleforma-document-view' doc.id %}" target="_blank" title="{% trans "View" %}"><img src="/static//teleforma/images/application-msword.png" style="vertical-align:middle" alt="" />{% endif %} {{ doc.title }}{% if doc.file %}</a>{% endif %}</td>
<td {% if forloop.first %}class="border-top"{% endif %} width="40%">{{ year }}</td>
- <td {% if forloop.first %}class="border-top"{% endif %} width="10%" align="center">{% if doc.file %}<a href="{% url teleforma-document-download doc.id %}"><img src="/static/teleforma/images/download.png" style="vertical-align:middle" alt="" title="{% trans "Download" %}" /></a>{% endif %}</td>
+ <td {% if forloop.first %}class="border-top"{% endif %} width="10%" align="center">{% if doc.file %}<a href="{% url 'teleforma-document-download' doc.id %}"><img src="/static/teleforma/images/download.png" style="vertical-align:middle" alt="" title="{% trans "Download" %}" /></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</p>
{% if ap_period.appointment.can_cancel %}
- <form class="cancel_form" action="{% url teleforma-appointment-cancel %}" method="POST">
+ <form class="cancel_form" action="{% url 'teleforma-appointment-cancel' %}" method="POST">
{% csrf_token %}
<input type="hidden" name="course_id" value="{{ ap_period.course.id }}"/>
<input type="hidden" name="period_id" value="{{ period_id }}"/>
var conferenceUtils = {
stop : function(id){
json([id],'teleforma.stop_conference',function(){
- location.href = '{% url teleforma-conference-record %}';
+ location.href = "{% url 'teleforma-conference-record' %}"";
}
);
}}
<div class="course_title">
<div style="float: right; font-size: 0.9em;">
- <a href="{% url teleforma-conference-audio period.id conference.id %}" class="component_icon button icon_speaker"> {% trans "Audio" %}</a>
+ <a href="{% url 'teleforma-conference-audio' period.id conference.id %}" class="component_icon button icon_speaker"> {% trans "Audio" %}</a>
</div>
- <a href="{% url teleforma-desk-period-course period.id course.id %}" style="color: #000;">{{ course.title }}</a> - {{ type }} - {% trans "Session" %} {{ conference.session }}
+ <a href="{% url 'teleforma-desk-period-course' period.id course.id %}" style="color: #000;">{{ course.title }}</a> - {{ type }} - {% trans "Session" %} {{ conference.session }}
</div>
<div class="media">
<dl class="listing">
{% if conference.professor %}
- <dt>{% trans "Course" %}</dt><dd><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ conference.course.title }} - {{ conference.course_type }}</a></dd>
+ <dt>{% trans "Course" %}</dt><dd><a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ conference.course.title }} - {{ conference.course_type }}</a></dd>
<dt>{% trans "Session" %}</dt><dd>{{ conference.session }}</dd>
<dt>{% trans "Professor" %}</dt><dd>{{ conference.professor }}</dd>
{% endif %}
var conferenceUtils = {
stop : function(id){
json([id],'teleforma.conference_stop',function(){
- location.href = '{% url teleforma-conference-record %}';});
+ location.href = "{% url 'teleforma-conference-record' %}"";});
}}
jQuery(window).ready(function(){
<div class="course_title">
<div style="float: right; font-size: 0.9em;">
- <a href="{% url teleforma-conference-detail period.id conference.id %}" class="component_icon button icon_clap"> {% trans "Video" %}</a>
+ <a href="{% url 'teleforma-conference-detail' period.id conference.id %}" class="component_icon button icon_clap"> {% trans "Video" %}</a>
</div>
{{ course.title }}{% if course.description %} - {{ course.description }}{% endif %} - {{ conference.session }} - {{ conference.professor }}
{% block courses %}
{% for c in all_courses %}
{% with c.course as course %}
-<li><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ course.title }}</a></li>
+<li><a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ course.title }}</a></li>
{% endwith %}
{% endfor %}
{% endblock courses %}
//
// Fetch the PDF document from the URL using promices
//
-PDFJS.getDocument('{% url teleforma-document-download document.id %}').then(function(pdf) {
+PDFJS.getDocument("{% url 'teleforma-document-download' document.id %}").then(function(pdf) {
// Using promise to fetch the page
pdf.getPage(1).then(function(page) {
var scale = 1.5;
{% if media.file and media.is_published or user.is_superuser or user.is_staff %}
{% if not "video" in media.mime_type or request.user_agent.os.family == 'iOS' %}
<div class="module_action">
- <a href="{% url teleforma-media-download period.id media.id %}" class="component_icon button" id="action_red"><img src="/static/teleforma/images/download_media.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
+ <a href="{% url 'teleforma-media-download' period.id media.id %}" class="component_icon button" id="action_red"><img src="/static/teleforma/images/download_media.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
</div>
{% endif %}
{% endif %}
<a href="{% url 'teleforma-media-transcoded' period.id media|get_audio_id %}" class="component_icon button icon_speaker"> {% trans "Audio" %}</a>
{% endif %}
{% if "audio" in media.mime_type %}
- <a href="{% url teleforma-media-detail period.id media|get_video_id %}" class="component_icon button icon_clap"> {% trans "Video" %}</a>
+ <a href="{% url 'teleforma-media-detail' period.id media|get_video_id %}" class="component_icon button icon_clap"> {% trans "Video" %}</a>
{% endif %}
{% if user.is_staff %}
<a id="publish" href="#" class="{% if media.is_published %}component_icon button icon_ok{% else %}component_icon button icon_delete{% endif %}">{% if media.is_published %}{% trans " published" %}{% else %}{% trans " rejected" %}{% endif %}</a>
{% endif %}
</div>
- <a href="{% url teleforma-desk-period-course period.id course.id %}">{{ course.title }} - {{ type }}{% if media.conference.session %} - {% trans "Session" %} {{ media.conference.session }}{% endif %}</a>
+ <a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ course.title }} - {{ type }}{% if media.conference.session %} - {% trans "Session" %} {{ media.conference.session }}{% endif %}</a>
</div>
<dl class="listing">
{% if media.conference %}
-<dt>{% trans "Course" %}</dt><dd><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ media.course.title }} - {{ media.course_type }}</a></dd>
+<dt>{% trans "Course" %}</dt><dd><a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ media.course.title }} - {{ media.course_type }}</a></dd>
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
<dt>{% trans "Professor" %}</dt><dd>{{ media.conference.professor }}</dd>
<dt>{% trans "Date modified" %}</dt><dd>{{ media.date_modified }}</dd>
<dt>{% trans "Media ID" %}</dt><dd>{{ media.id }}</dd>
<dt>{% trans "Conference ID" %}</dt><dd>{{ media.conference.public_id }}</dd>
-<dt>{% trans "Web class group" %}</dt><dd>{{ media.conference.web_class_group }}</dd>
{% endif %}
{% endif %}
<dt>{% trans "Date modified" %}</dt><dd>{{ media.date_modified }}</dd>
<dt>{% trans "Media ID" %}</dt><dd>{{ media.id }}</dd>
<dt>{% trans "Conference ID" %}</dt><dd>{{ media.conference.public_id }}</dd>
-<dt>{% trans "Web class group" %}</dt><dd>{{ media.conference.web_class_group }}</dd>
{% endif %}
{% endif %}
<dl class="listing">
{% if media.conference %}
-<dt>{% trans "Course" %}</dt><dd><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ media.course.title }} - {{ media.course_type }}</a></dd>
+<dt>{% trans "Course" %}</dt><dd><a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ media.course.title }} - {{ media.course_type }}</a></dd>
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
<dt>{% trans "Professor" %}</dt><dd>{{ media.conference.professor }}</dd>
{% block courses %}
{% for c in all_courses %}
{% with c.course as course %}
- <li><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ course.title }}</a></li>
+ <li><a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ course.title }}</a></li>
{% endwith %}
{% endfor %}
{% endblock courses %}
{% get_telecaster as telecaster %}
{% if telecaster %}
<div class="module_action">
- <a href="{% url teleforma-conference-record %}" class="component_icon button"
+ <a href="{% url 'teleforma-conference-record' %}" class="component_icon button"
id="action_red">{% trans "New conference" %}</a>
</div>
{% endif %}
{% if user.is_staff %}
<div class="module_action">
- <a href="{% url teleforma-desk-period-pending period.id %}" class="component_icon button"
+ <a href="{% url 'teleforma-desk-period-pending' period.id %}" class="component_icon button"
id="action_red">{% trans "Pending" %}</a>
</div>
{% endif %}
{% elif slot.status == 'almost' %}
La webclasse <strong>"{{slot.webclass.course.title}}"</strong> va démarrer bientôt.
{% endif %}
- <a href="{% url teleforma-webclass-join slot.id %}" target="_blank"
+ <a href="{% url 'teleforma-webclass-join' slot.id %}" target="_blank"
class="conference-big-button component_icon button icon_next">Cliquez ici pour rejoindre la
webclasse</a>
</p>
<p>
<strong>Vous n'êtes pas inscrit à la webclasse "{{webclass.course.title}}".</strong> <a
class="conference-big-button component_icon button icon_next"
- href="{% url teleforma-webclass-appointments webclass.id %}">Cliquez-ici pour choisir un créneau
+ href="{% url 'teleforma-webclass-appointments' webclass.id %}">Cliquez-ici pour choisir un créneau
horaire</a>
</p>
</td>
{% for type in c.types %}
<div class="course">
<div class="course_title">
- <a href="{% url teleforma-desk-period-course period.id course.id %}">{{ course.title }} - {{ type }}{% if course.description %} - {{ course.description }}{% endif %}</a>
+ <a href="{% url 'teleforma-desk-period-course' period.id course.id %}">{{ course.title }} - {{ type }}{% if course.description %} - {{ course.description }}{% endif %}</a>
</div>
{% block media %}
<tr>
{% if stream.streaming %}
<td {% if forloop.first %}class="border-top"{% endif %} width="230px">
- <a href="{% url teleforma-conference-detail period.id stream.conference.id %}" title="{% trans "View" %}">
+ <a href="{% url 'teleforma-conference-detail' period.id stream.conference.id %}" title="{% trans "View" %}">
<img id="snapshot-{{ stream.course.code }}-{{ stream.course_type }}" src="{{ stream.snapshot_url }}" width="100%" alt="{% trans 'Click here' %}" />
</a>
</td>
<dt>{% trans "Title" %}</dt><dd>{{ stream.conference.course.title }}</dd>
<dt>{% trans "Session" %}</dt><dd>{{ stream.conference.session }}</dd>
{% if stream.conference.professor.user.username %}
- <dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail stream.conference.professor.user.username %}" target="_blank">{{ stream.conference.professor }}</a></dd>
+ <dt>{% trans "Professor" %}</dt><dd><a href="{% url 'teleforma-profile-detail' stream.conference.professor.user.username %}" target="_blank">{{ stream.conference.professor }}</a></dd>
{% endif %}
<dt>{% trans "Begin" %}</dt><dd>{{ stream.conference.date_begin }}</dd>
</dl>
<tbody>
{% for doc in docs|from_course_type:type|from_doc_type:doc_type|from_periods:period|published %}
<tr>
- <td {% if forloop.first %}class="border-top"{% endif %} width="60%">{% if doc.file %}<a href="{% url teleforma-document-view doc.id %}" target="_blank" title="{% trans "View" %}"><img src="/static//teleforma/images/application-msword.png" style="vertical-align:middle" alt="" />{% endif %} {{ doc.title }}{% if doc.file %}</a>{% endif %}</td>
+ <td {% if forloop.first %}class="border-top"{% endif %} width="60%">{% if doc.file %}<a href="{% url 'teleforma-document-view' doc.id %}" target="_blank" title="{% trans "View" %}"><img src="/static//teleforma/images/application-msword.png" style="vertical-align:middle" alt="" />{% endif %} {{ doc.title }}{% if doc.file %}</a>{% endif %}</td>
<td {% if forloop.first %}class="border-top"{% endif %} width="35%">{{ doc.date_added }}</td>
- <td {% if forloop.first %}class="border-top"{% endif %} width="5%" align="center">{% if doc.file %}<a href="{% url teleforma-document-download doc.id %}"><img src="/static/teleforma/images/download.png" style="vertical-align:middle" alt="" title="{% trans "Download" %}" /></a>{% endif %}</td>
+ <td {% if forloop.first %}class="border-top"{% endif %} width="5%" align="center">{% if doc.file %}<a href="{% url 'teleforma-document-download' doc.id %}"><img src="/static/teleforma/images/download.png" style="vertical-align:middle" alt="" title="{% trans "Download" %}" /></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
<dt>{% trans "Title" %}</dt><dd>{{ media.conference.course.title }}</dd>
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
- <dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
+ <dt>{% trans "Professor" %}</dt><dd><a href="{% url 'teleforma-profile-detail' media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
{% endif %}
<dt>{% trans "Begin" %}</dt><dd>{{ media.conference.date_begin }}</dd>
{% if media.conference.comment %}
<ul class="actions">
{% if newsitem.can_edit %}
<li>
- <a href="{% url newsitem-update pk=newsitem.id %}?period_id={{ period_id }}"><img src="{% static 'teleforma/images/pencil-edit-button.png' %}" alt="éditer"/>
+ <a href="{% url 'newsitem-update' pk=newsitem.id %}?period_id={{ period_id }}"><img src="{% static 'teleforma/images/pencil-edit-button.png' %}" alt="éditer"/>
</a>
</li>
{% endif %}
{% if newsitem.can_delete %}
<li>
- <a href="{% url newsitem-delete pk=newsitem.id %}?period_id={{ period_id }}"><img src="{% static 'teleforma/images/rubbish-bin-delete-button.png' %}" alt="supprimer"/></a>
+ <a href="{% url 'newsitem-delete' pk=newsitem.id %}?period_id={{ period_id }}"><img src="{% static 'teleforma/images/rubbish-bin-delete-button.png' %}" alt="supprimer"/></a>
</li>
{% endif %}
</ul>
<h3><img src="{% static 'teleforma/images/actus.png' %}" alt="actualités"/>Actualités</h3>
<ul>
<li><a href="#news_local">{% if course.title_tweeter %}{{ course.title_tweeter }}{% else %}{{ course.title }}{% endif %}</a>
- {% if can_add %}<a href="{% url newsitem-create %}?course_id={{course.id}}&period_id={{period_id}}">+</a>{% endif %}
+ {% if can_add %}<a href="{% url 'newsitem-create' %}?course_id={{course.id}}&period_id={{period_id}}">+</a>{% endif %}
</li>
<li><a href="#news_global">Générales</a>
- {% if can_add %}<a href="{% url newsitem-create %}?period_id={{period_id}}">+</a>{% endif %}
+ {% if can_add %}<a href="{% url 'newsitem-create' %}?period_id={{period_id}}">+</a>{% endif %}
</li>
</ul>
<div id="news_local">
<tbody id="spacing">
{% for user in page.object_list %}
<tr>
- <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.last_name }}</a></td>
- <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.first_name }}</a></td>
+ <td><a href="{% url 'teleforma-profile-detail' user.username %}">{{ user.last_name }}</a></td>
+ <td><a href="{% url 'teleforma-profile-detail' user.username %}">{{ user.first_name }}</a></td>
{% if user.student.get %}
{% with user.student.get as student %}
<div class="pagination">
<span class="page-links">
{% if page_obj.has_previous %}
- <a href="{% url newsitem-list period_id=period_id %}?page={{ page_obj.previous_page_number }}&course_id={{ course_id }}">Précédent</a>
+ <a href="{% url 'newsitem-list' period_id=period_id %}?page={{ page_obj.previous_page_number }}&course_id={{ course_id }}">Précédent</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} sur {{ page_obj.paginator.num_pages }}
</span>
{% if page_obj.has_next %}
- <a href="{% url newsitem-list period_id=period_id %}?page={{ page_obj.next_page_number }}&course_id={{ course_id }}">Suivant</a>
+ <a href="{% url 'newsitem-list' period_id=period_id %}?page={{ page_obj.next_page_number }}&course_id={{ course_id }}">Suivant</a>
{% endif %}
</span>
</div>
{% if user.is_authenticated and user.username == usr.username %}
<a href="{% url 'teleforma-password-change' %}" class="component_icon button icon_login">{% trans "Change password" %}</a>
{% elif user.is_staff %}
- <a href="{% url teleforma-user-login usr.id %}" class="component_icon button icon_login">{% trans "Login as" %}</a>
+ <a href="{% url 'teleforma-user-login' usr.id %}" class="component_icon button icon_login">{% trans "Login as" %}</a>
{% endif %}
</div>
}
$(document).ready(function () {
- $('#location').autocomplete('{% url telemeta-complete-location %}', {
+ $('#location').autocomplete('{% url 'telemeta-complete-location' %}', {
max: 20,
formatResult: function(data) {
return data[0].replace(/ *\([0-9]+.*\) *$/, '');
<div class="course">
<h1>{% trans "Advanced Search" %}</h1>
-<form action="{% url telemeta-search %}" id="searchform">{% csrf_token %}
+<form action="{% url 'telemeta-search' %}" id="searchform">{% csrf_token %}
<fieldset>
<p>
<ul>
{% block trainings %}
{% for t in trainings %}
-<li><a href="{% url teleforma-users t.id iej.id course.id %}">{{ t.code|lower|capfirst }} - {{ t.period|lower|capfirst }}</a></li>
+<li><a href="{% url 'teleforma-users' t.id iej.id course.id %}">{{ t.code|lower|capfirst }} - {{ t.period|lower|capfirst }}</a></li>
{% endfor %}
{% endblock trainings %}
</ul>
<ul>
{% block iej %}
{% for i in iejs %}
-<li><a href="{% url teleforma-users training.id i.id course.id %}">{{ i.name|lower|capfirst }}</a></li>
+<li><a href="{% url 'teleforma-users' training.id i.id course.id %}">{{ i.name|lower|capfirst }}</a></li>
{% endfor %}
{% endblock iej %}
</ul>
<ul>
{% block courses %}
{% for c in courses %}
-<li><a href="{% url teleforma-users training.id iej.id c.id %}">{{ c }}</a></li>
+<li><a href="{% url 'teleforma-users' training.id iej.id c.id %}">{{ c }}</a></li>
{% endfor %}
{% endblock courses %}
</ul>
{% if user.is_staff %}
<div style="float:right;">
-<a href="{% url teleforma-users-export training.id iej.id course.id %}" class="component_icon button icon_csv">XLS Export</a>
+<a href="{% url 'teleforma-users'-export training.id iej.id course.id %}" class="component_icon button icon_csv">XLS Export</a>
</div>
{% endif %}
</ul>
</li>
{% else %}
- <li><a href="{% url telemeta-profile-detail user.username %}" class="darkblue">{% trans "Profile" %}</a></li>
- <li><a href="{% url telemeta-logout %}" class="black">{% trans "Sign out" %}</a></li>
+ <li><a href="{% url 'telemeta-profile-detail' user.username %}" class="darkblue">{% trans "Profile" %}</a></li>
+ <li><a href="{% url 'telemeta-logout' %}" class="black">{% trans "Sign out" %}</a></li>
{% endif %}
{% endif %}
from django.db.models.query_utils import Q
from django.shortcuts import get_object_or_404
from django.urls.base import reverse
-from django.utils.encoding import force_text, smart_str
+from django.utils.encoding import force_str, smart_str
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from docutils.core import publish_parts
parts = publish_parts(source=smart_str(
parsed), writer_name="html4css1", settings_overrides={})
- return mark_safe('<div class="rst-content">\n' + force_text(parts["html_body"]) + '</div>')
+ return mark_safe('<div class="rst-content">\n' + force_str(parts["html_body"]) + '</div>')
render_flatpage.is_safe = True
url(r'^accounts/password_reset_complete/$', PasswordResetCompleteView.as_view(
template_name='registration/password_reset_complete.html'), name="teleforma-password-reset-complete"),
-
- url(r'^captcha/', include('captcha.urls')),
-
# Help
url(r'^help/$', HelpView.as_view(), name="teleforma-help"),
url(r'^desk/periods/(?P<period_id>.*)/conferences/(?P<pk>.*)/audio/$',
ConferenceView.as_view(template_name="teleforma/course_conference_audio.html"),
name="teleforma-conference-audio"),
- url(r'^desk/conference_record/$', ConferenceRecordView.as_view(),
- name="teleforma-conference-record"),
- url(r'^desk/bbbconference_record/$', BBBConferenceRecordView.as_view(),
- name="teleforma-bbbconference-record"),
url(r'^desk/periods/(?P<period_id>.*)/conferences/list/$', ConferenceListView.as_view(),
name="teleforma-conferences"),
from jsonrpc import jsonrpc_method
+import weasyprint
from django.utils.decorators import method_decorator
from django.contrib.auth import authenticate, login, get_backends
from django.template import RequestContext, loader, Context
from django import template
-from django.http import HttpResponse, HttpResponseRedirect, Http404
-from django.shortcuts import render_to_response, redirect, get_object_or_404
+from django.http import FileResponse, HttpResponse, HttpResponseRedirect, Http404
+from django.shortcuts import render, redirect, get_object_or_404
from django.views.generic import *
from django.views.generic.base import *
from django.conf import settings
import pages
from xlwt import Workbook
-from cgi import escape
-from cStringIO import StringIO
-from xhtml2pdf import pisa
+from html import escape
from ..decorators import access_required
from ..models.appointment import Appointment, AppointmentPeriod
from ..models.core import (Conference, Course, CourseType, Department,
Document, DocumentType, Media, MediaTranscoded,
- Organization, Period, Professor, WebClassGroup,
+ Organization, Period, Professor,
get_user_role)
from ..webclass.models import Webclass, WebclassRecord
from .pages import get_page_content
else:
return Period.objects.get(id=getattr(settings, 'TELEFORMA_PERIOD_DEFAULT_ID', 1))
-
def content_to_pdf(content, dest, encoding='utf-8', **kwargs):
"""
Write into *dest* file object the given html *content*.
Return True if the operation completed successfully.
"""
- src = BytesIO(content.encode(encoding))
- pdf = pisa.pisaDocument(src, dest, encoding=encoding, **kwargs)
- return not pdf.err
+ src = weasyprint.HTML(string=content, encoding=encoding)
+ src.write_pdf(dest)
+ return True
+
def content_to_response(content, filename=None):
buffering=buffering, streaming=streaming)
else:
try:
- pass
- #response = FileResponse(open(media_path, 'rb'))
+ response = FileResponse(open(media_path, 'rb'))
except:
response = StreamingHttpResponse(stream_from_file(media_path), content_type=content_type)
filename = os.path.basename(media_path)
app_label="teleforma", model="course")
room_name = media.course.code
- if media.conference.web_class_group:
- room_name += '_' + media.conference.public_id
context['room'] = get_room(name=room_name, period=context['period'].name,
content_type=content_type,
app_label="teleforma", model="course")
room_name = media.course.code
- if media.conference.web_class_group:
- room_name += '_' + media.conference.public_id
context['room'] = get_room(name=room_name, period=context['period'].name,
content_type=content_type,
app_label="teleforma", model="course")
room_name = conference.course.code
- if conference.web_class_group:
- room_name += '_' + conference.public_id
context['room'] = get_room(name=room_name, period=context['period'].name,
content_type=content_type,
model = Conference
hidden_fields = ['started', 'date_begin', 'date_end', 'public_id', 'readers']
-class ConferenceRecordView(ConferenceMixin):
- "Conference record form : TeleCaster module required"
- form_class = ConferenceForm
- template_name='teleforma/course_conference_record.html'
+# class ConferenceRecordView(ConferenceMixin):
+# "Conference record form : TeleCaster module required"
+# form_class = ConferenceForm
+# template_name='teleforma/course_conference_record.html'
# def get_context_data(self, **kwargs):
# context = super(ConferenceRecordView, self).get_context_data(**kwargs)
professor.save()
-class WebClassGroupView(View):
+# class WebClassGroupView(View):
- @jsonrpc_method('teleforma.get_class_group_list')
- def get_class_group_list(request):
- class_groups = WebClassGroup.objects.all()
- return [w.to_json_dict() for w in class_groups]
+# @jsonrpc_method('teleforma.get_class_group_list')
+# def get_class_group_list(request):
+# class_groups = WebClassGroup.objects.all()
+# return [w.to_json_dict() for w in class_groups]
- def pull(request, host=None):
- if host:
- url = 'http://' + host + '/json/'
- else:
- url = 'http://' + settings.TELECASTER_MASTER_SERVER + '/json/'
- s = ServiceProxy(url)
+# def pull(request, host=None):
+# if host:
+# url = 'http://' + host + '/json/'
+# else:
+# url = 'http://' + settings.TELECASTER_MASTER_SERVER + '/json/'
+# s = ServiceProxy(url)
- remote_list = s.teleforma.get_class_group_list()
- for class_group_dict in remote_list['result']:
- class_group, c = WebClassGroup.objects.get_or_create(
- name=class_group_dict['name'])
+# remote_list = s.teleforma.get_class_group_list()
+# for class_group_dict in remote_list['result']:
+# class_group, c = WebClassGroup.objects.get_or_create(
+# name=class_group_dict['name'])
class HelpView(TemplateView):
-# Generated by Django 3.2.3 on 2021-06-01 15:28
+# Generated by Django 3.2.13 on 2023-04-26 11:59
from django.conf import settings
from django.db import migrations, models