From: Gael Le Mignot Date: Tue, 13 Nov 2018 15:44:24 +0000 (+0100) Subject: Additional filters on scripts X-Git-Tag: 1.4.0~21^2~4 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=bb5ff1d16d63e745d2987ca33fbb5c5b398836e2;p=teleforma.git Additional filters on scripts --- diff --git a/teleforma/exam/admin.py b/teleforma/exam/admin.py index 3cdbeba5..84ec23d6 100644 --- a/teleforma/exam/admin.py +++ b/teleforma/exam/admin.py @@ -36,7 +36,8 @@ class ScriptAdmin(admin.ModelAdmin): 'corrector__last_name', 'course__title', 'course__code'] readonly_fields = ['date_added','uuid','box_uuid','sha1','mime_type'] list_filter = ['period', 'course__title', 'session', 'type', 'status', - 'date_submitted', 'date_marked', 'date_rejected'] + 'date_submitted', 'date_marked', 'date_rejected', + 'author__student__platform_only' ] list_display = ['title', 'author_name', 'file_size', 'status'] actions = ['force_resubmit',] diff --git a/teleforma/exam/templates/exam/scripts.html b/teleforma/exam/templates/exam/scripts.html index 749f5c3d..1b278c00 100644 --- a/teleforma/exam/templates/exam/scripts.html +++ b/teleforma/exam/templates/exam/scripts.html @@ -91,6 +91,13 @@ {% endfor %} +
+ + {% endif %} diff --git a/teleforma/exam/views.py b/teleforma/exam/views.py index 489c4225..2f29edd6 100755 --- a/teleforma/exam/views.py +++ b/teleforma/exam/views.py @@ -24,12 +24,12 @@ class ScriptMixinView(View): self.period = Period.objects.get(id=self.kwargs['period_id']) context['period'] = self.period context['script_service_url'] = getattr(settings, 'TELEFORMA_EXAM_SCRIPT_SERVICE_URL') + self.nb_script = self.period.nb_script or settings.TELEFORMA_EXAM_MAX_SESSIONS if getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) and self.period.date_exam_end: upload = datetime.datetime.now() <= self.period.date_exam_end - if self.period.nb_script: - if Script.objects.filter(period = self.period, - author = self.request.user).count() >= self.period.nb_script: - upload = False + if Script.objects.filter(period = self.period, + author = self.request.user).count() >= self.nb_script: + upload = False context['upload'] = upload else: context['upload'] = False @@ -55,6 +55,7 @@ class ScriptsListMixinView(ScriptMixinView): correctors = User.objects.filter(corrector_scripts__in=self.get_base_queryset()).order_by('last_name').distinct() context['correctors_list'] = [(str(corrector.id), corrector.get_full_name()) for corrector in correctors] context['corrector_selected'] = self.request.GET.get('corrector', str(self.request.user.id)) + session_choices = get_n_choices(self.nb_script + 1) context['sessions_list'] = session_choices context['session_selected'] = self.request.GET.get('session') types = ScriptType.objects.all() @@ -63,6 +64,7 @@ class ScriptsListMixinView(ScriptMixinView): courses = Course.objects.filter(scripts__in=self.get_base_queryset()).distinct() context['courses_list'] = [(str(course.id), course.title) for course in courses] context['course_selected'] = self.request.GET.get('course') + context['platform_only'] = self.request.GET.get('platform_only') return context class ScriptView(ScriptMixinView, CourseAccessMixin, UpdateView): @@ -128,6 +130,7 @@ class ScriptsView(ScriptsListMixinView, ListView): type = self.request.GET.get('type') session = self.request.GET.get('session') course = self.request.GET.get('course') + platform_only = self.request.GET.get('platform_only') if type: QT = Q(type__id=int(type)) & QT if session: @@ -136,6 +139,8 @@ class ScriptsView(ScriptsListMixinView, ListView): QT = Q(course__id=int(course)) & QT if corrector: QT = Q(corrector__id=int(corrector)) & QT + if platform_only: + QT = Q(author__student__platform_only = int(platform_only)) & QT return QT @method_decorator(login_required) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index e41d872e..0424bf72 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -151,7 +151,7 @@ class Period(Model): is_open = models.BooleanField(_('is open'), default=True) date_exam_end = models.DateTimeField(_("date de fin d'examens"), null=True, blank=True) nb_script = models.IntegerField(_("nombre maximal de copies"), null=True, blank=True) - date_close_accounts = models.DateField(_("date de fermeture des comptes étudiants"), null = True, blank = True) + date_close_accounts = models.DateField("date de fermeture des comptes étudiants", null = True, blank = True) def __unicode__(self): return self.name