From: test test Date: Thu, 15 Jul 2021 11:36:36 +0000 (+0200) Subject: Handle issue with script corrector assignment X-Git-Tag: 2.3~4 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=13f6fd80909ac73df96ca3ee72e7a2482d43b0be;p=teleforma.git Handle issue with script corrector assignment --- diff --git a/teleforma/exam/admin.py b/teleforma/exam/admin.py index 36f007a6..44f30d99 100644 --- a/teleforma/exam/admin.py +++ b/teleforma/exam/admin.py @@ -17,8 +17,15 @@ class QuotaAdmin(admin.ModelAdmin): list_filter = ['course__title', 'period', 'session'] search_fields = ['corrector__username', 'corrector__last_name'] + def render_change_form(self, request, context, *args, **kwargs): + context['adminform'].form.fields['corrector'].queryset = User.objects.filter(is_active=True).filter(Q(corrector__isnull=False) | Q(is_superuser=True)) + return super(QuotaAdmin, self).render_change_form(request, context, *args, **kwargs) + def corrector_name(self, instance): - return instance.corrector.last_name + ' ' + instance.corrector.first_name + if instance.corrector: + return instance.corrector.last_name + ' ' + instance.corrector.first_name + else: + return "Aucun" class ScriptPageInline(admin.StackedInline): diff --git a/teleforma/exam/models.py b/teleforma/exam/models.py index b4e3ad74..24ad71b2 100755 --- a/teleforma/exam/models.py +++ b/teleforma/exam/models.py @@ -142,7 +142,7 @@ class Quota(models.Model): course = models.ForeignKey(Course, related_name="quotas", verbose_name=_( 'course'), null=True, blank=True, on_delete=models.SET_NULL) corrector = models.ForeignKey(User, related_name="quotas", verbose_name=_( - 'corrector'), null=True, blank=True, on_delete=models.SET_NULL) + 'corrector'), null=True, blank=False, on_delete=models.SET_NULL) period = models.ForeignKey(Period, related_name='quotas', verbose_name=_( 'period'), null=True, blank=True, on_delete=models.SET_NULL) session = models.CharField( diff --git a/teleforma/management/commands/teleforma-exam-set-correctors.py b/teleforma/management/commands/teleforma-exam-set-correctors.py new file mode 100644 index 00000000..89cea1b3 --- /dev/null +++ b/teleforma/management/commands/teleforma-exam-set-correctors.py @@ -0,0 +1,18 @@ +from optparse import make_option +from django.conf import settings +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User +from django.template.defaultfilters import slugify +from teleforma.exam.models import * +import logging +import codecs + + +class Command(BaseCommand): + help = "Set corrector to unassigned pending scripts" + + def handle(self, *args, **options): + scripts = Script.objects.filter(corrector=None, status='3') + for script in scripts: + script.auto_set_corrector() + print(f"set corrector {script.corrector} for script {script.id}") \ No newline at end of file