63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
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',)
|