# -*- coding: utf-8 -*-
from teleforma.models import *
+from teleforma.exam.models import *
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
class ProfileInline(admin.StackedInline):
model = Profile
+class QuotasInline(admin.StackedInline):
+ model = Quota
+
class UserProfileAdmin(UserAdmin):
- inlines = [CRFPAStudentProfileInline,
- ProfessorProfileInline, ProfileInline]
+ inlines = [ProfileInline, CRFPAStudentProfileInline,
+ ProfessorProfileInline, QuotasInline]
class TrainingAdmin(admin.ModelAdmin):
model = Training
class QuotaInline(admin.StackedInline):
model = Quota
-class CorrectorAdmin(admin.ModelAdmin):
- model = Corrector
- inlines = [QuotaInline]
-
class ScriptAdmin(admin.ModelAdmin):
model = Script
# exclude = ['options']
# inlines = [ScriptPageInline]
-
-admin.site.register(Corrector, CorrectorAdmin)
admin.site.register(Script, ScriptAdmin)
admin.site.register(ScriptPage)
admin.site.register(ScriptType)
--- /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):
+ # Deleting model 'Corrector'
+ db.delete_table('exam_corrector')
+
+
+ # Changing field 'Script.corrector'
+ db.alter_column('exam_script', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['auth.User']))
+
+ # 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']))
+
+ def backwards(self, orm):
+ # Adding model 'Corrector'
+ db.create_table('exam_corrector', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='correctors', null=True, to=orm['auth.User'], on_delete=models.SET_NULL, blank=True)),
+ ))
+ db.send_create_signal('exam', ['Corrector'])
+
+
+ # Changing field 'Script.corrector'
+ db.alter_column('exam_script', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['exam.Corrector'], on_delete=models.SET_NULL))
+
+ # Changing field 'Quota.corrector'
+ db.alter_column('exam_quota', 'corrector_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['exam.Corrector']))
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ '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'}),
+ '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': "'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, 13, 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):
+ # Adding field 'Quota.period'
+ db.add_column('exam_quota', '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']),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Quota.period'
+ db.delete_column('exam_quota', 'period_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_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, 14, 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
return unique
-class Corrector(models.Model):
-
- user = models.ForeignKey(User, related_name="correctors", verbose_name=_('user'), blank=True, null=True, on_delete=models.SET_NULL)
-
- class Meta(MetaCore):
- verbose_name = _('Corrector')
- verbose_name_plural = _('Correctors')
-
- def __unicode__(self):
- return ' '.join([self.user.first_name, self.user.last_name])
-
-
class Quota(models.Model):
course = models.ForeignKey(Course, related_name="quotas", verbose_name=_('course'), blank=True, null=True)
- corrector = models.ForeignKey('Corrector', related_name="quotas", verbose_name=_('corrector'), blank=True, null=True)
+ corrector = models.ForeignKey(User, related_name="quotas", verbose_name=_('corrector'), blank=True, null=True)
+ period = models.ForeignKey(Period, related_name='quotas', verbose_name=_('period'),
+ null=True, blank=True, on_delete=models.SET_NULL)
value = models.IntegerField(_('value'))
date_start = models.DateField(_('date start'))
date_end = models.DateField(_('date end'))
ordering = ['date_start']
def __unicode__(self):
- return ' - '.join([self.course.title, str(self.value)])
+ return ' - '.join([unicode(self.corrector), self.course.title, str(self.value)])
@property
def level(self):
if self.value:
if self.value != 0:
- level = 100*self.corrector.scripts.filter(Q(status=2) | Q(status=3) | Q(status=4)).count()/self.value
- print level
+ level = 100*self.user.scripts.filter(Q(status=2) | Q(status=3) | Q(status=4)).count()/self.value
return level
else:
return 0
session = models.CharField(_('session'), choices=session_choices,
max_length=16, default="1")
type = models.ForeignKey(ScriptType, related_name='scripts', verbose_name=_('type'), null=True, on_delete=models.SET_NULL)
- author = models.ForeignKey(User, related_name="scripts", verbose_name=_('author'), null=True, blank=True, on_delete=models.SET_NULL)
- file = models.FileField(_('PDF file'), upload_to='scripts/%Y/%m/%d', blank=True)
+ author = models.ForeignKey(User, related_name="author_scripts", verbose_name=_('author'), null=True, blank=True, on_delete=models.SET_NULL)
+ corrector = models.ForeignKey(User, related_name="corrector_scripts", verbose_name=_('corrector'), blank=True, null=True, on_delete=models.SET_NULL)
+ file = models.FileField(_('PDF file'), upload_to='corrector_scripts/%Y/%m/%d', blank=True)
box_uuid = models.CharField(_('Box UUID'), max_length='256', blank=True)
- corrector = models.ForeignKey('Corrector', related_name="scripts", verbose_name=_('corrector'), blank=True, null=True, on_delete=models.SET_NULL)
score = models.FloatField(_('score'), blank=True, null=True)
comments = models.TextField(_('comments'), blank=True)
status = models.IntegerField(_('status'), choices=SCRIPT_STATUS, default=1, blank=True)
- reject_reason = models.IntegerField(_('reject_reason'), choices=REJECT_REASON, null=True, blank=True)
+ reject_reason = models.IntegerField(_('reason'), choices=REJECT_REASON, null=True, blank=True)
date_submitted = models.DateTimeField(_('date submitted'), null=True, blank=True)
date_marked = models.DateTimeField(_('date marked'), null=True, blank=True)
date_rejected = models.DateTimeField(_('date rejected'), null=True, blank=True)
-
url = models.CharField(_('URL'), max_length='2048', blank=True)
+ @property
+ def title(self):
+ return ' - '.join([self.course.title, self.type.name, _("Session") + ' ' + self.session,
+ unicode(self.author.first_name) + ' ' + unicode(self.author.first_name),
+ unicode(self.date_submitted)])
+
def __unicode__(self):
- return unicode(self.uuid)
+ return unicode(self.title)
class Meta(MetaCore):
verbose_name = _('Script')
lower_quota = sorted(quota_list, key=lambda k: k['level'])[0]
self.corrector = lower_quota['obj'].corrector
else:
- user = User.objects.filter(is_superuser=True)[0]
- self.corrector = Corrector.objects.get(user=user)
+ self.corrector = User.objects.filter(is_superuser=True)[0]
self.save()
def make_from_pages(self):
mess.moderation_status = 'a'
mess.save()
#notify_user(mess, 'acceptance')
-
+
def reject(self):
self.date_marked = datetime.datetime.now()
self.date_rejected = datetime.datetime.now()
mess.moderation_status = 'a'
mess.save()
#notify_user(mess, 'acceptance')
-
+
def set_file_properties(sender, instance, **kwargs):
if instance.file:
if not instance.mime_type:
<th>{% trans "Type"%}</th>
<th>{% trans "Submission date"%}</th>
<th>{% trans "Mark date"%}</th>
+ <th>{% trans "Corrector"%}</th>
<th>{% trans "Score"%}</th>
</tr>
</thead>
<td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{{ script.type }}</a></td>
<td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{{ script.date_submitted }}</a></td>
<td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{% if script.date_marked %}{{ script.date_marked }}{% endif %}</a></td>
- <td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{% if script.score %}{{ script.score }}{% endif %}</a></td>
+ <td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{% if script.corrector %}{{ script.corrector }}{% endif %}</a></td>
+ <td><a href="{% url teleforma-exam-script-detail period.id script.id %}">{% if script.score %}{{ script.score|floatformat }}{% endif %}</a></td>
</tr>
{% endfor %}
</tbody>
<script>
// increase the default animation speed to exaggerate the effect
- $(function() {
+ $(document).ready(function(){
+
$( "#dialog_mark" ).dialog({
autoOpen: false,
draggable: false,
$('#_RejectForm').submit();
});
+ $("#box-iframe").contents().find("span.btn.text-btn.strikeout-btn").hide();
+
});
</script>
<div class="course_title">
- <a href="{% url teleforma-desk-period-course period.id script.course.id %}">{{ course.title }} - {{ script.type }}{% if script.session %} - {% trans "Session" %} {{ script.session }}{% endif %} - {{ script.author.first_name }} {{ script.author.last_name }} - {{ script.date_submitted }}</a>
+ <a href="{% url teleforma-desk-period-course period.id script.course.id %}">{{ script.title }}</a>
<div style="float: right; font-size: 0.9em;">
<td>{{ field.label_tag }}:</td><td> {{ field }}/20</td>
{% else %}
<td>{{ field.label_tag }}:</td><td> {{ field }}</td>
- {% endif %}
-
+ {% endif %}
+
{% endif %}
</tr>
{% endfor %}
<td>{{ field.label_tag.as_hidden }}</td><td>{{ field.as_hidden }}</td>
{% else %}
<tr><td class="error">{{ field.errors }}</td></tr>
- <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
+ <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
{% endif %}
</tr>
{% endfor %}
<br /><br />
<div class="media">
<div class="script">
- <iframe style="position:fixed; top:14%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{% if user.correctors.all %}{{ script.box_admin_url }}{% else %}{{ script.box_user_url }}{% endif %}">
+ <iframe id="box-iframe" style="position:fixed; top:14%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{% if user.correctors.all %}{{ script.box_admin_url }}{% else %}{{ script.box_user_url }}{% endif %}">
</iframe>
</div>
</div>
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector__user=user))
+ scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector=user))
return scripts
def get_context_data(self, **kwargs):
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector__user=user))
+ scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector=user))
return scripts
def get_context_data(self, **kwargs):
def get_queryset(self):
user = self.request.user
- scripts = Script.objects.filter(Q(status=0, author=user) | Q(status=0, corrector__user=user))
+ scripts = Script.objects.filter(Q(status=0, author=user) | Q(status=0, corrector=user))
return scripts
-
+
def get_context_data(self, **kwargs):
context = super(ScriptsRejectedView, self).get_context_data(**kwargs)
context['title'] = ugettext('Rejected scripts')
def get_context_data(self, **kwargs):
context = super(ScriptCreateView, self).get_context_data(**kwargs)
context['create_fields'] = ['course', 'period', 'session', 'type', 'file' ]
- print self.request
return context
@method_decorator(login_required)
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-13 02:59+0200\n"
+"POT-Creation-Date: 2014-06-13 10:47+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Guillaume Pellerin <yomguy@parisson.com>\n"
"Language-Team: LANGUAGE <lists@parisson.com>\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-#: exam/models.py:60 exam/models.py:310
+#: exam/models.py:60 exam/models.py:313
msgid "rejected"
msgstr "rejeté"
msgid "pending"
msgstr "en attente"
-#: exam/models.py:61 exam/models.py:298
+#: exam/models.py:61 exam/models.py:300
msgid "marked"
msgstr "corrigée"
msgid "Correctors"
msgstr "Correcteurs"
-#: exam/models.py:118 exam/models.py:189 models/core.py:198 models/core.py:252
+#: exam/models.py:118 exam/models.py:191 models/core.py:198 models/core.py:252
#: models/core.py:492 models/core.py:578 models/pro.py:45
msgid "course"
msgstr "matière"
-#: exam/models.py:119 exam/models.py:198
+#: exam/models.py:119 exam/models.py:200
msgid "corrector"
msgstr "correcteur"
msgid "Quotas"
msgstr ""
-#: exam/models.py:145 models/core.py:458 models/pro.py:67
+#: exam/models.py:147 models/core.py:458 models/pro.py:67
msgid "date added"
msgstr "date d'ajout"
-#: exam/models.py:146 models/core.py:159 models/core.py:459 models/pro.py:68
+#: exam/models.py:148 models/core.py:159 models/core.py:459 models/pro.py:68
msgid "date modified"
msgstr "date de modification"
-#: exam/models.py:147
+#: exam/models.py:149
msgid "UUID"
msgstr ""
-#: exam/models.py:148
+#: exam/models.py:150
#, fuzzy
msgid "MIME type"
msgstr "Type mime"
-#: exam/models.py:149
+#: exam/models.py:151
msgid "sha1"
msgstr ""
-#: exam/models.py:165 exam/models.py:297 exam/models.py:309
+#: exam/models.py:167 exam/models.py:299 exam/models.py:312
msgid "script"
msgstr "copie"
-#: exam/models.py:166
+#: exam/models.py:168
msgid "Page file"
msgstr "Fichier de page"
-#: exam/models.py:167
+#: exam/models.py:169
msgid "Image file"
msgstr "Fichier image"
-#: exam/models.py:168 models/pro.py:49 models/pro.py:85
+#: exam/models.py:170 models/pro.py:49 models/pro.py:85
msgid "rank"
msgstr "rang"
-#: exam/models.py:171
+#: exam/models.py:173
msgid "Page"
msgstr "Page"
-#: exam/models.py:172
+#: exam/models.py:174
msgid "Pages"
msgstr "Pages"
-#: exam/models.py:177 models/core.py:93 models/core.py:106 models/core.py:128
+#: exam/models.py:179 models/core.py:93 models/core.py:106 models/core.py:128
#: models/core.py:140 models/core.py:234 models/core.py:475 models/crfpa.py:47
#: models/crfpa.py:63
msgid "name"
msgstr "nom"
-#: exam/models.py:180
+#: exam/models.py:182
msgid "ScriptType"
msgstr ""
-#: exam/models.py:181
+#: exam/models.py:183
#, fuzzy
msgid "ScriptTypes"
msgstr "type"
-#: exam/models.py:190 models/ae.py:47 models/core.py:111 models/core.py:136
+#: exam/models.py:192 models/ae.py:47 models/core.py:111 models/core.py:136
#: models/core.py:250 models/core.py:497 models/core.py:541 models/core.py:582
#: models/crfpa.py:64
msgid "period"
msgstr "période"
-#: exam/models.py:192 models/core.py:256
+#: exam/models.py:194 models/core.py:256
msgid "session"
-msgstr "session"
+msgstr "séance"
-#: exam/models.py:194 models/core.py:389 models/core.py:499 models/core.py:586
+#: exam/models.py:196 models/core.py:389 models/core.py:499 models/core.py:586
msgid "type"
msgstr "type"
-#: exam/models.py:195
+#: exam/models.py:197
msgid "author"
msgstr "auteur"
-#: exam/models.py:196
+#: exam/models.py:198
msgid "PDF file"
msgstr "Fichier PDF"
-#: exam/models.py:197
+#: exam/models.py:199
msgid "Box UUID"
msgstr ""
-#: exam/models.py:199
+#: exam/models.py:201
msgid "score"
msgstr "note"
-#: exam/models.py:200 models/pro.py:125
+#: exam/models.py:202 models/pro.py:125
msgid "comments"
msgstr "commentaires"
-#: exam/models.py:201 models/core.py:265 models/pro.py:48 models/pro.py:88
+#: exam/models.py:203 models/core.py:265 models/pro.py:48 models/pro.py:88
#: models/pro.py:104
msgid "status"
msgstr "status"
-#: exam/models.py:202
-msgid "reject_reason"
-msgstr " raison du rejet"
+#: exam/models.py:204
+msgid "reason"
+msgstr "raison"
-#: exam/models.py:203
+#: exam/models.py:205
msgid "date submitted"
msgstr "date de soumission"
-#: exam/models.py:204
+#: exam/models.py:206
msgid "date marked"
msgstr "date de correction"
-#: exam/models.py:205
+#: exam/models.py:207
msgid "date rejected"
msgstr "date de rejet"
-#: exam/models.py:207
+#: exam/models.py:209
msgid "URL"
msgstr ""
-#: exam/models.py:213
+#: exam/models.py:215
msgid "Script"
msgstr "Copie"
-#: exam/models.py:214 exam/templates/exam/scripts.html:21
+#: exam/models.py:216 exam/templates/exam/scripts.html:21
#: templates/telemeta/base.html:116
msgid "Scripts"
msgstr "Copies"
#: templates/teleforma/inc/conference_list.html:26
#: templates/teleforma/inc/media_list.html:37
msgid "Session"
-msgstr "Session"
+msgstr "Séance"
#: exam/templates/exam/script_detail.html:90
#: exam/templates/exam/inc/script_list.html:19
"Merci de vous connecter ou bien contactez l'administateur du site pour "
"obtenir un accès privé."
-#: views/core.py:218
+#: views/core.py:223
msgid ""
"You do NOT have access to this resource and then have been redirected to "
"your desk."
"Vous n'avez pas accès à cette ressource et avez été redirigé vers votre "
"bureau."
-#: views/core.py:546
+#: views/core.py:551
msgid "A new live conference has started : "
msgstr "Une nouvelle conférence en direct a commencé : "
@register.simple_tag
def untreated_scripts_count(username):
user = User.objects.get(username=username)
- scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector__user=user))
+ scripts = Script.objects.filter(Q(status=3, author=user) | Q(status=3, corrector=user))
if scripts:
return ' (' + str(len(scripts)) + ')'
else:
@register.simple_tag
def treated_scripts_count(username):
user = User.objects.get(username=username)
- scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector__user=user))
+ scripts = Script.objects.filter(Q(status=4, author=user) | Q(status=4, corrector=user))
if scripts:
return ' (' + str(len(scripts)) + ')'
else:
name = 'site'
if settings.TELEFORMA_PERIOD_TWEETER and period:
- name = name + '-' + period
+ name = name + '-' + period
if settings.TELEFORMA_GLOBAL_TWEETER:
rooms = jqchat.models.Room.objects.filter(name=name[:20])
professor = user.professor.all()
if professor:
- professor = user.professor.get()
periods = Period.objects.all()
- corrector = user.correctors.all()
- if corrector:
- corrector = user.correctors.get()
- periods = Period.objects.all()
+ quotas = user.quotas.all()
+ if quotas:
+ periods = [quota.period for quota in quotas]
return periods
else:
course = course[0]
course.from_dict(course_dict)
-
+
@jsonrpc_method('teleforma.get_dep_courses')
def get_dep_courses(request, id):
department = Department.objects.get(id=id)
return [p.to_json_dict() for p in professors]
def pull(request, host=None):
-
+
if host:
url = 'http://' + host + '/json/'
else:
professor = user.professor.all()
student = user.student.all()
- corrector = user.correctors.all()
+ quotas = user.quotas.all()
if professor:
professor = user.professor.get()
courses = format_courses(courses, queryset=professor.courses.all(),
types=CourseType.objects.all())
- if corrector:
- corrector = user.correctors.get()
- #FIXME
- courses = format_courses(courses, queryset=Course.objects.all(),
+ elif quotas:
+ queryset = Course.objects.all()
+ for quota in quotas:
+ queryset = queryset.filter(quotas=quota)
+ courses = format_courses(courses, queryset=queryset,
types=CourseType.objects)
+
elif student:
student = user.student.get()
for training in student.trainings.all():