]> git.parisson.com Git - teleforma.git/commitdiff
Remove Corrector class so that the quotas are directly related to user
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 13 Jun 2014 22:45:09 +0000 (00:45 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 13 Jun 2014 22:45:09 +0000 (00:45 +0200)
13 files changed:
teleforma/admin.py
teleforma/exam/admin.py
teleforma/exam/migrations/0015_auto__del_corrector__chg_field_script_corrector__chg_field_quota_corre.py [new file with mode: 0644]
teleforma/exam/migrations/0016_auto__add_field_quota_period.py [new file with mode: 0644]
teleforma/exam/models.py
teleforma/exam/templates/exam/inc/script_list.html
teleforma/exam/templates/exam/script_detail.html
teleforma/exam/views.py
teleforma/locale/fr/LC_MESSAGES/django.mo
teleforma/locale/fr/LC_MESSAGES/django.po
teleforma/templatetags/teleforma_tags.py
teleforma/views/core.py
teleforma/views/crfpa.py

index 040642ac05e22205154c0c9f576887804cb85201..18b844a3667aea0d937a968666d22dd2ea0591b8 100644 (file)
@@ -1,5 +1,6 @@
 # -*- 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
@@ -30,9 +31,12 @@ class ProfessorAdmin(admin.ModelAdmin):
 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
index 2c13fdd1e9e9d1deef796d106b7adcdfbddfa49b..fda58ae536019a6382be633ba00874f3c7be0ec4 100644 (file)
@@ -14,18 +14,12 @@ class ScriptPageInline(admin.StackedInline):
 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)
diff --git a/teleforma/exam/migrations/0015_auto__del_corrector__chg_field_script_corrector__chg_field_quota_corre.py b/teleforma/exam/migrations/0015_auto__del_corrector__chg_field_script_corrector__chg_field_quota_corre.py
new file mode 100644 (file)
index 0000000..f1c489d
--- /dev/null
@@ -0,0 +1,186 @@
+# -*- 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
diff --git a/teleforma/exam/migrations/0016_auto__add_field_quota_period.py b/teleforma/exam/migrations/0016_auto__add_field_quota_period.py
new file mode 100644 (file)
index 0000000..a8ec05b
--- /dev/null
@@ -0,0 +1,173 @@
+# -*- 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
index b77d5dee07cd907b05f109203bdfcd24e639bbb6..198c1c977c34703c5ddfb5f556559c7feea74705 100644 (file)
@@ -101,22 +101,12 @@ def check_unique_mimetype(l):
     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'))
@@ -127,14 +117,13 @@ class Quota(models.Model):
         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
@@ -194,22 +183,27 @@ class Script(BaseResource):
     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')
@@ -243,8 +237,7 @@ class Script(BaseResource):
             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):
@@ -303,7 +296,7 @@ class Script(BaseResource):
         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()
@@ -316,7 +309,7 @@ class Script(BaseResource):
         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:
index a9ac2c5885a23b01252d6ef804b637f40d1e45f7..6106f1cf7d9827e926891fe28377143d88a62768 100644 (file)
@@ -16,6 +16,7 @@
     <th>{% trans "Type"%}</th>
     <th>{% trans "Submission date"%}</th>
     <th>{% trans "Mark date"%}</th>
+    <th>{% trans "Corrector"%}</th>
     <th>{% trans "Score"%}</th>
     </tr>
     </thead>
@@ -29,7 +30,8 @@
      <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>
index 15597b6eee4b0b6485f9d6e9a0ddba05ef4af5c0..cdd2851822b49dd18c296c5b29bdcc2b7bac1371 100644 (file)
@@ -12,7 +12,8 @@
   <script>
     // increase the default animation speed to exaggerate the effect
 
-    $(function() {
+    $(document).ready(function(){
+
         $( "#dialog_mark" ).dialog({
             autoOpen: false,
             draggable: false,
@@ -69,6 +70,8 @@
             $('#_RejectForm').submit();
         });
 
+       $("#box-iframe").contents().find("span.btn.text-btn.strikeout-btn").hide();
+
     });
 
     </script>
@@ -82,7 +85,7 @@
 
 <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>
index cd009ed19af8050e3e99275959f9d11c703bb5e1..2a3f71741febc750c84bf239f316b8098fa6d0f9 100644 (file)
@@ -57,7 +57,7 @@ class ScriptsPendingView(ScriptsView):
 
     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):
@@ -70,7 +70,7 @@ class ScriptsTreatedView(ScriptsView):
 
     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):
@@ -83,9 +83,9 @@ class ScriptsRejectedView(ScriptsView):
 
     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')
@@ -109,7 +109,6 @@ class ScriptCreateView(CreateView):
     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)
index 14745f68d7192f6ca7bf079f18a941fe49888cd7..51df99e1df7886378d723ca7627c8659e52da8cf 100644 (file)
Binary files a/teleforma/locale/fr/LC_MESSAGES/django.mo and b/teleforma/locale/fr/LC_MESSAGES/django.mo differ
index f51c0684185deabf77452719241c31606dffd9ba..0049d48d91d576132f06b68169c71e27fd7512e1 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 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"
@@ -16,7 +16,7 @@ msgstr ""
 "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é"
 
@@ -32,7 +32,7 @@ msgstr "soumise"
 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"
 
@@ -65,12 +65,12 @@ msgstr "Correcteur"
 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"
 
@@ -94,130 +94,130 @@ msgstr ""
 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"
@@ -246,7 +246,7 @@ msgstr "Copies rejetées"
 #: 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
@@ -1438,7 +1438,7 @@ msgstr ""
 "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."
@@ -1446,7 +1446,7 @@ msgstr ""
 "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é : "
 
index beea84dc9f9f529521871913ad1a85f5ad0410d0..6d445e35e7d852abc39766f4dc4665ef49bf2bfb 100644 (file)
@@ -211,7 +211,7 @@ def published(doc):
 @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:
@@ -220,7 +220,7 @@ def untreated_scripts_count(username):
 @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:
index 747ee16e735910c2fc75a55026bc5fe83cb86cd6..da12fb9255034f877a5aaa6096ab19e36b90aa3e 100644 (file)
@@ -125,7 +125,7 @@ def get_room(content_type=None, id=None, name=None, period=None):
         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])
@@ -170,13 +170,11 @@ def get_periods(user):
 
     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
 
@@ -277,7 +275,7 @@ class CourseListView(CourseAccessMixin, ListView):
             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)
@@ -678,7 +676,7 @@ class ProfessorListView(View):
         return [p.to_json_dict() for p in professors]
 
     def pull(request, host=None):
-        
+
         if host:
             url = 'http://' + host + '/json/'
         else:
index b4655de19d48af13ae53f9edc25a8d25d2b87f4e..8eeb3c16dc9bf61ea3bb17d1b518c64e179c7f86 100644 (file)
@@ -50,18 +50,20 @@ def get_crfpa_courses(user, date_order=False, num_order=False, period=None):
 
     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():