from django.contrib import admin from modeltranslation.admin import TabbedTranslationAdmin from .models import Category, Course, CourseFAQ, CourseHighlight, Lesson, Section @admin.register(Category) class CategoryAdmin(TabbedTranslationAdmin): list_display = ("name", "slug", "order") search_fields = ("name", "slug") ordering = ("order", "slug") class CourseHighlightInline(admin.TabularInline): model = CourseHighlight extra = 0 class CourseFAQInline(admin.TabularInline): model = CourseFAQ extra = 0 class SectionInline(admin.TabularInline): model = Section extra = 0 fields = ("title", "order") show_change_link = True @admin.register(Course) class CourseAdmin(TabbedTranslationAdmin): list_display = ("title", "instructor", "category", "level", "status", "created_at") list_filter = ("status", "level", "category") search_fields = ("title", "slug") raw_id_fields = ("instructor",) readonly_fields = ("created_at", "updated_at", "published_at") prepopulated_fields = {} inlines = [CourseHighlightInline, CourseFAQInline, SectionInline] class LessonInline(admin.TabularInline): model = Lesson extra = 0 fields = ("title", "kind", "order", "is_preview", "status") show_change_link = True @admin.register(Section) class SectionAdmin(TabbedTranslationAdmin): list_display = ("title", "course", "order") list_filter = ("course",) raw_id_fields = ("course",) inlines = [LessonInline] @admin.register(Lesson) class LessonAdmin(TabbedTranslationAdmin): list_display = ("title", "section", "kind", "status", "is_preview", "order") list_filter = ("kind", "status", "is_preview") search_fields = ("title",) raw_id_fields = ("section",)