from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

from .models import Option, Participant, Question, Quiz, Result


class OptionInline(admin.TabularInline):
    model = Option
    extra = 4


class QuestionAdmin(admin.ModelAdmin):
    list_display = ("question", "quiz")
    inlines = [OptionInline]


class QuizAdmin(admin.ModelAdmin):
    list_display = ("title", "description")


class ParticipantAdmin(UserAdmin):
    fieldsets = UserAdmin.fieldsets + (
        ("Participant Information", {"fields": ("name", "student_class", "age", "gender", "institution")}),
    )
    add_fieldsets = UserAdmin.add_fieldsets + (
        ("Participant Information", {"fields": ("name", "student_class", "age", "gender", "institution", "email")}),
    )
    list_display = ("username", "email", "name", "student_class", "institution", "is_staff")


class ResultAdmin(admin.ModelAdmin):
    list_display = ("participant", "quiz", "score", "total", "created_at")


admin.site.register(Participant, ParticipantAdmin)
admin.site.register(Quiz, QuizAdmin)
admin.site.register(Question, QuestionAdmin)
admin.site.register(Option)
admin.site.register(Result, ResultAdmin)