from django.contrib import admin from .models import ( Choice, Grade, Lesson, Node, NodeProgress, Question, Unit, UserAnswer, UserLessonCompletion, ) class ChoiceInline(admin.TabularInline): model = Choice extra = 1 @admin.register(Grade) class GradeAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'icon', 'color') @admin.register(Unit) class UnitAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'grade', 'order') list_filter = ('grade',) @admin.register(Node) class NodeAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'unit', 'order') list_filter = ('unit',) @admin.register(Lesson) class LessonAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'node') list_filter = ('node',) @admin.register(Question) class QuestionAdmin(admin.ModelAdmin): list_display = ('id', 'prompt', 'lesson', 'type') list_filter = ('type', 'lesson') inlines = [ChoiceInline] @admin.register(UserLessonCompletion) class UserLessonCompletionAdmin(admin.ModelAdmin): list_display = ('id', 'user_id', 'lesson', 'correct_count', 'stars', 'xp_earned', 'coins_earned') list_filter = ('lesson',) @admin.register(UserAnswer) class UserAnswerAdmin(admin.ModelAdmin): list_display = ('id', 'user_id', 'question', 'choice', 'correct', 'xp_earned') list_filter = ('correct',) @admin.register(NodeProgress) class NodeProgressAdmin(admin.ModelAdmin): list_display = ( 'id', 'user_id', 'node', 'status', 'lessons_completed_count', 'started_at', 'last_activity_at', 'completed_at', ) list_filter = ('status', 'node__unit') search_fields = ('user_id',)