]> git.parisson.com Git - teleforma.git/commitdiff
Add field to filters scripts by author name
authorYoan Le Clanche <yoanl@pilotsystems.net>
Fri, 17 Jul 2020 13:51:43 +0000 (15:51 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Fri, 17 Jul 2020 13:51:43 +0000 (15:51 +0200)
teleforma/exam/templates/exam/scripts.html
teleforma/exam/views.py

index 1b6182520d725fa6d1827a7bdf3447b8ee51b895..e03e3510fb2ecf7982ccd4d98e16822da285167a 100644 (file)
        <option value="1" {% if platform_only == '1' %}selected="selected"{% endif %}>Oui</option>
        <option value="0" {% if platform_only == '0' %}selected="selected"{% endif %}>Non</option>
     </select>
+    <label for="student_name">Etudiant</label>
+    <input name="student_name" id="student_name" placeholder="nom, mail ou identifiant de l'étudiant" value="{{student_name}}" />
     <input type="submit" value="Filtrer"/>
 </form>
 {% endif %}
index 82e0b6241c7d29636969271a09bdb381d9789e23..46a7bbf9f1688c47f6a2ca9a487b8c2006a2b5f2 100755 (executable)
@@ -86,6 +86,7 @@ class ScriptsListMixinView(ScriptMixinView):
             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')
+            context['student_name'] = self.request.GET.get('student_name') or ''
         return context
 
 class ScriptView(ScriptMixinView, CourseAccessMixin, UpdateView):
@@ -153,6 +154,7 @@ class ScriptsView(ScriptsListMixinView, ListView):
         session = self.request.GET.get('session')
         course = self.request.GET.get('course')
         platform_only = self.request.GET.get('platform_only')
+        student_name = self.request.GET.get('student_name')
         if type:
             QT &= Q(type__id=int(type))
         if session:
@@ -163,6 +165,10 @@ class ScriptsView(ScriptsListMixinView, ListView):
             QT &= Q(corrector__id=int(corrector))
         if platform_only:
             QT &= Q(author__student__platform_only = int(platform_only))
+        if student_name:
+            QT &= Q(author__student__user__first_name__icontains=student_name) | Q(author__student__user__last_name__icontains=student_name) | Q(author__student__user__email=student_name) | Q(author__student__user__username=student_name)
+            
+
         return QT
 
     def get_base_queryset(self):