From: Guillaume Pellerin Date: Tue, 4 Jul 2017 23:11:21 +0000 (+0200) Subject: Add ScriptMixinView X-Git-Tag: 1.1~9 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=bb58833cdfbfdf3b109981e2b01fe20e5504327b;p=teleforma.git Add ScriptMixinView --- diff --git a/teleforma/exam/views.py b/teleforma/exam/views.py index 022bd640..c39c515c 100644 --- a/teleforma/exam/views.py +++ b/teleforma/exam/views.py @@ -13,7 +13,20 @@ from django.utils.translation import ugettext_lazy as _ import numpy as np -class ScriptView(CourseAccessMixin, UpdateView): +class ScriptMixinView(View): + + def get_context_data(self, **kwargs): + context = super(ScriptMixinView, self).get_context_data(**kwargs) + period = Period.objects.get(id=self.kwargs['period_id']) + context['period'] = period + if getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) and period.date_exam_end: + context['upload'] = datetime.datetime.now() <= period.date_exam_end + else: + context['upload'] = False + return context + + +class ScriptView(ScriptMixinView, CourseAccessMixin, UpdateView): model = Script template_name='exam/script_detail.html' @@ -59,17 +72,11 @@ class ScriptView(CourseAccessMixin, UpdateView): return super(ScriptView, self).dispatch(*args, **kwargs) -class ScriptsView(ListView): +class ScriptsView(ScriptMixinView, ListView): model = Script template_name='exam/scripts.html' - def get_context_data(self, **kwargs): - context = super(ScriptsView, self).get_context_data(**kwargs) - context['period'] = Period.objects.get(id=self.kwargs['period_id']) - context['upload'] = getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) - return context - @method_decorator(login_required) def dispatch(self, *args, **kwargs): return super(ScriptsView, self).dispatch(*args, **kwargs) @@ -148,7 +155,7 @@ class ScriptsRejectedView(ScriptsView): return context -class ScriptCreateView(CreateView): +class ScriptCreateView(ScriptMixinView, CreateView): model = Script template_name='exam/script_form.html' @@ -176,13 +183,6 @@ class ScriptCreateView(CreateView): def get_context_data(self, **kwargs): context = super(ScriptCreateView, self).get_context_data(**kwargs) - period = Period.objects.get(id=self.kwargs['period_id']) - context['period'] = period - if getattr(settings, 'TELEFORMA_EXAM_SCRIPT_UPLOAD', True) and period.date_exam_end: - context['upload'] = datetime.datetime.now() <= period.date_exam_end - else: - context['upload'] = False - context['period'] = period context['create_fields'] = ['course', 'session', 'type', 'file' ] course_pk_list = [c['course'].id for c in get_courses(self.request.user)] context['form'].fields['course'].queryset = Course.objects.filter(pk__in=course_pk_list) @@ -204,11 +204,6 @@ class QuotasView(ListView): model = Quota template_name='exam/quotas.html' - def get_context_data(self, **kwargs): - context = super(QuotasView, self).get_context_data(**kwargs) - context['period'] = Period.objects.get(id=self.kwargs['period_id']) - return context - @method_decorator(login_required) def dispatch(self, *args, **kwargs): return super(QuotasView, self).dispatch(*args, **kwargs) @@ -245,7 +240,6 @@ class ScriptsScoreAllView(ScriptsTreatedView): def get_context_data(self, **kwargs): context = super(ScriptsScoreAllView, self).get_context_data(**kwargs) - period = Period.objects.get(id=self.kwargs['period_id']) if self.request.user.is_staff or self.request.user.professor.all(): scripts = Script.objects.filter(period=period).exclude(score=None)