From: Guillaume Pellerin Date: Fri, 13 Jun 2014 22:45:09 +0000 (+0200) Subject: Remove Corrector class so that the quotas are directly related to user X-Git-Tag: 1.1~476 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=27d0c9cb921af504c7aed7d404c7c95eab4c5662;p=teleforma.git Remove Corrector class so that the quotas are directly related to user --- diff --git a/teleforma/admin.py b/teleforma/admin.py index 040642ac..18b844a3 100644 --- a/teleforma/admin.py +++ b/teleforma/admin.py @@ -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 diff --git a/teleforma/exam/admin.py b/teleforma/exam/admin.py index 2c13fdd1..fda58ae5 100644 --- a/teleforma/exam/admin.py +++ b/teleforma/exam/admin.py @@ -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 index 00000000..f1c489df --- /dev/null +++ b/teleforma/exam/migrations/0015_auto__del_corrector__chg_field_script_corrector__chg_field_quota_corre.py @@ -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 index 00000000..a8ec05b8 --- /dev/null +++ b/teleforma/exam/migrations/0016_auto__add_field_quota_period.py @@ -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 diff --git a/teleforma/exam/models.py b/teleforma/exam/models.py index b77d5dee..198c1c97 100644 --- a/teleforma/exam/models.py +++ b/teleforma/exam/models.py @@ -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: diff --git a/teleforma/exam/templates/exam/inc/script_list.html b/teleforma/exam/templates/exam/inc/script_list.html index a9ac2c58..6106f1cf 100644 --- a/teleforma/exam/templates/exam/inc/script_list.html +++ b/teleforma/exam/templates/exam/inc/script_list.html @@ -16,6 +16,7 @@ {% trans "Type"%} {% trans "Submission date"%} {% trans "Mark date"%} + {% trans "Corrector"%} {% trans "Score"%} @@ -29,7 +30,8 @@ {{ script.type }} {{ script.date_submitted }} {% if script.date_marked %}{{ script.date_marked }}{% endif %} - {% if script.score %}{{ script.score }}{% endif %} + {% if script.corrector %}{{ script.corrector }}{% endif %} + {% if script.score %}{{ script.score|floatformat }}{% endif %} {% endfor %} diff --git a/teleforma/exam/templates/exam/script_detail.html b/teleforma/exam/templates/exam/script_detail.html index 15597b6e..cdd28518 100644 --- a/teleforma/exam/templates/exam/script_detail.html +++ b/teleforma/exam/templates/exam/script_detail.html @@ -12,7 +12,8 @@ @@ -82,7 +85,7 @@
- {{ course.title }} - {{ script.type }}{% if script.session %} - {% trans "Session" %} {{ script.session }}{% endif %} - {{ script.author.first_name }} {{ script.author.last_name }} - {{ script.date_submitted }} + {{ script.title }}
@@ -121,8 +124,8 @@ {{ field.label_tag }}: {{ field }}/20 {% else %} {{ field.label_tag }}: {{ field }} - {% endif %} - + {% endif %} + {% endif %} {% endfor %} @@ -145,7 +148,7 @@ {{ field.label_tag.as_hidden }}{{ field.as_hidden }} {% else %} {{ field.errors }} - {{ field.label_tag }}: {{ field }} + {{ field.label_tag }}: {{ field }} {% endif %} {% endfor %} @@ -167,7 +170,7 @@

-
diff --git a/teleforma/exam/views.py b/teleforma/exam/views.py index cd009ed1..2a3f7174 100644 --- a/teleforma/exam/views.py +++ b/teleforma/exam/views.py @@ -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) diff --git a/teleforma/locale/fr/LC_MESSAGES/django.mo b/teleforma/locale/fr/LC_MESSAGES/django.mo index 14745f68..51df99e1 100644 Binary files a/teleforma/locale/fr/LC_MESSAGES/django.mo and b/teleforma/locale/fr/LC_MESSAGES/django.mo differ diff --git a/teleforma/locale/fr/LC_MESSAGES/django.po b/teleforma/locale/fr/LC_MESSAGES/django.po index f51c0684..0049d48d 100644 --- a/teleforma/locale/fr/LC_MESSAGES/django.po +++ b/teleforma/locale/fr/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: LANGUAGE \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é : " diff --git a/teleforma/templatetags/teleforma_tags.py b/teleforma/templatetags/teleforma_tags.py index beea84dc..6d445e35 100644 --- a/teleforma/templatetags/teleforma_tags.py +++ b/teleforma/templatetags/teleforma_tags.py @@ -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: diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 747ee16e..da12fb92 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -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: diff --git a/teleforma/views/crfpa.py b/teleforma/views/crfpa.py index b4655de1..8eeb3c16 100644 --- a/teleforma/views/crfpa.py +++ b/teleforma/views/crfpa.py @@ -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():