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:
parent
c70c5574cd
commit
22e19033ff
5 changed files with 42 additions and 7 deletions
|
|
@ -3,4 +3,4 @@ from django.apps import AppConfig
|
|||
|
||||
class CoursesConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'courses'
|
||||
name = 'courses'
|
||||
|
|
@ -3,7 +3,7 @@ from . import views
|
|||
|
||||
app_name = 'courses'
|
||||
urlpatterns = [
|
||||
path('', views.list, name='list'),
|
||||
path('', views.list_courses, name='list'),
|
||||
# Lesson detail: /courses/<course>/<module>/<lesson>/
|
||||
path('<slug:course_slug>/<slug:module_slug>/<slug:lesson_slug>/', views.lesson_detail, name='lesson_detail'),
|
||||
path('<slug:course_name>-<int:course_id>/', views.show, name="show"),
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue