]> git.parisson.com Git - teleforma.git/commitdiff
On the homepage, now display last course of the current period instead of last course...
authorYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 22 Nov 2021 10:31:06 +0000 (11:31 +0100)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Mon, 22 Nov 2021 10:31:06 +0000 (11:31 +0100)
teleforma/views/core.py

index 518d9f3b721d0121f772961e400daf7efaff31cc..ec6982f8b98186320a5a8ac1d1c70a20944da95a 100644 (file)
@@ -337,8 +337,21 @@ class CourseListView(CourseAccessMixin, ListView):
     def get_context_data(self, **kwargs):
         context = super(CourseListView, self).get_context_data(**kwargs)
         context['list_view'] = True
-        context['courses'] = sorted(
-            context['all_courses'], key=lambda k: k['date'], reverse=True)[:1]
+
+        courses = [course['course'] for course in context['all_courses']]
+
+        # get last published media / document
+        last_published = sorted([
+            Media.objects.filter(period=self.period, is_published=True, course__in=courses).order_by("-date_added")[0],
+            Document.objects.filter(periods=self.period, is_published=True, course__in=courses).order_by("-date_added")[0],
+        ], key=lambda k: k.date_added, reverse=True)[0]
+
+        # get course with the latest published media / document
+        for course in context['all_courses']:
+            if course['course'].id == last_published.course.id:
+                break
+        context['courses'] = [course]
+
         user = self.request.user
         is_student = user.student.all().count()
         # appointments_open = False