63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
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",)
|