]> git.parisson.com Git - teleforma.git/commitdiff
Filtering courses on scores portlet
authorGael Le Mignot <gael@pilotsystems.net>
Fri, 21 Dec 2018 14:06:31 +0000 (15:06 +0100)
committerGael Le Mignot <gael@pilotsystems.net>
Fri, 21 Dec 2018 14:06:31 +0000 (15:06 +0100)
teleforma/exam/templates/exam/scores.html
teleforma/exam/views.py

index f2105043e737f4f4b26550696207533abcccf82e..cc82af1dccf4e797587ee781647e4d66f76f8c70 100644 (file)
     <h3><a href="{% url teleforma-home %}"><img src="/static/telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "My courses" %}</a></h3>
     <div style="background: white;">
     <ul>
-    {% with user|user_courses as courses %}
-     {% for c in courses %}
-       {% with c.course as course %}
+     {% for course in courses %}
        <li><a href="{% url teleforma-exam-scripts-scores-course period.id course.id %}">{{ course.title}} {{ course.type }}</a></li>
-       {% endwith %}
      {% endfor %}
-    {% endwith %}
     </ul>
     </div>
     </div>
index 8b608b104939464c7d741b3f99a6af258ddfa55f..e4616e0b1c0cffc3adcb959b48828c2794a8b684 100755 (executable)
@@ -26,12 +26,17 @@ class ScriptMixinView(View):
         """
         Get the list of pk of courses current user is allowed to access
         """
-        return [c['course'].id for c in get_courses(self.request.user) if c['course'].has_exam_scripts]
+        courses = [ c['course'] for c in get_courses(self.request.user) ]
+        courses = [ c for c in courses if c.has_exam_scripts ]
+        courses = [ c for c in courses if c.is_for_period(self.period) ]
+        return [ c.id for c in courses ]
         
     def get_context_data(self, **kwargs):
         context = super(ScriptMixinView, self).get_context_data(**kwargs)
         self.period = Period.objects.get(id=self.kwargs['period_id'])
         context['period'] = self.period
+        course_pk_list = self.get_course_pk_list()
+        context['courses'] = Course.objects.filter(pk__in=course_pk_list)
         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:
@@ -251,8 +256,7 @@ class ScriptCreateView(ScriptMixinView, CreateView):
     def get_context_data(self, **kwargs):    
         context = super(ScriptCreateView, self).get_context_data(**kwargs)
         context['create_fields'] = ['course', 'session', 'type', 'file' ]
-        course_pk_list = self.get_course_pk_list()
-        context['form'].fields['course'].queryset = Course.objects.filter(pk__in=course_pk_list)
+        context['form'].fields['course'].queryset = context['courses']
         return context
 
     @method_decorator(login_required)