from django.contrib import admin from apps.course.models import Lesson, LessonCompletion @admin.register(Lesson) class LessonAdmin(admin.ModelAdmin): list_display = ('title', 'course', 'priority', 'duration', 'content_type') list_filter = ('course', 'content_type') search_fields = ('title', 'course__title') ordering = ('priority', 'title') def get_queryset(self, request): qs = super().get_queryset(request) return qs.order_by('priority') @admin.register(LessonCompletion) class LessonCompletionAdmin(admin.ModelAdmin): list_display = ('student', 'lesson', 'completed_at') search_fields = ('student__fullname', 'student__email', 'lesson__title', 'lesson__course__title') list_filter = ('lesson__course', 'completed_at') ordering = ('-completed_at',) def get_readonly_fields(self, request, obj=None): """ Make fields readonly if the object already exists. """ if obj: return ['student', 'lesson', 'completed_at'] return []