partirdezero/courses/admin.py

56 lines
No EOL
1.9 KiB
Python

from django.contrib import admin
from .models import Course, Module, Lesson, Comment
class LessonInline(admin.TabularInline):
model = Lesson
extra = 0
fields = ("name", "slug", "is_premium", "order")
ordering = ("order",)
prepopulated_fields = {"slug": ("name",)}
class ModuleInline(admin.TabularInline):
model = Module
extra = 0
fields = ("name", "slug", "enable", "order")
ordering = ("order",)
prepopulated_fields = {"slug": ("name",)}
@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "author", "enable", "created_at", "updated_at")
list_filter = ("enable", "author", "created_at", "updated_at")
search_fields = ("name", "tags", "description", "author__username")
prepopulated_fields = {"slug": ("name",)}
readonly_fields = ("created_at", "updated_at")
inlines = [ModuleInline]
@admin.register(Module)
class ModuleAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "course", "enable", "order", "created_at", "updated_at")
list_filter = ("enable", "course", "created_at", "updated_at")
search_fields = ("name", "description", "course__name")
prepopulated_fields = {"slug": ("name",)}
readonly_fields = ("created_at", "updated_at")
ordering = ("course", "order")
inlines = [LessonInline]
@admin.register(Lesson)
class LessonAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "module", "is_premium", "order")
list_filter = ("is_premium", "module")
search_fields = ("name", "content", "module__name")
prepopulated_fields = {"slug": ("name",)}
ordering = ("module", "order")
@admin.register(Comment)
class CommentAdmin(admin.ModelAdmin):
list_display = ("lesson", "user", "created_at", "is_active")
list_filter = ("is_active", "created_at")
search_fields = ("content", "user__username", "lesson__name")
readonly_fields = ("created_at", "updated_at")