Fonction "list" de la vue des cours rennommée en "list_courses" pour éviter des erreurs de nommage. Ajout de boutons de navigation (suivant et précédent) pour les vidéos.

This commit is contained in:
mrtoine 2025-12-12 10:56:46 +01:00
parent c70c5574cd
commit 22e19033ff
5 changed files with 42 additions and 7 deletions

View file

@ -5,7 +5,7 @@ from django.db.models import Prefetch
from .models import Course, Lesson, Module, Comment
from .forms import CommentForm
def list(request):
def list_courses(request):
courses = Course.objects.all()
return render(request, 'courses/list.html', {'courses': courses})
@ -82,6 +82,20 @@ def lesson_detail(request, course_slug, module_slug, lesson_slug):
.order_by('order')
)
# Compute previous and next lessons within the ordered course lessons
prev_lesson = None
next_lesson = None
try:
ids = list(lessons.values_list('id', flat=True))
idx = ids.index(lesson.id)
if idx > 0:
prev_lesson = next(l for l in lessons if l.id == ids[idx - 1])
if idx < len(ids) - 1:
next_lesson = next(l for l in lessons if l.id == ids[idx + 1])
except ValueError:
# current lesson not in list — keep prev/next as None
pass
# Public comments for the current lesson (top-level) and their replies
replies_qs = Comment.objects.filter(is_active=True).select_related('user').order_by('created_at')
comments = (
@ -98,5 +112,7 @@ def lesson_detail(request, course_slug, module_slug, lesson_slug):
'lessons': lessons,
'comments': comments,
'comment_form': form,
'prev_lesson': prev_lesson,
'next_lesson': next_lesson,
}
return render(request, 'courses/lesson.html', context)