Files
weirsoe-party-protocol/fupogfakta/admin.py
Asger Geel Weirsøe a81bc1250c
Some checks failed
CI / test-and-quality (push) Failing after 4m4s
Big visual overhaul docker compsoe file etc
2026-03-23 14:11:30 +01:00

77 lines
2.2 KiB
Python

from django.contrib import admin
from .models import Category, Question, QuestionLie, GameSession, Player, RoundConfig, RoundQuestion, LieAnswer, Guess, ScoreEvent
from voice.models import QuestionVoiceLine
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ("name", "slug", "is_active")
list_filter = ("is_active",)
search_fields = ("name", "slug")
class QuestionLieInline(admin.TabularInline):
model = QuestionLie
extra = 1
class QuestionVoiceLineInline(admin.TabularInline):
model = QuestionVoiceLine
extra = 1
@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
list_display = ("id", "category", "scene_ornament", "is_active")
list_filter = ("category", "is_active")
search_fields = ("prompt", "correct_answer")
inlines = [QuestionLieInline, QuestionVoiceLineInline]
@admin.register(QuestionLie)
class QuestionLieAdmin(admin.ModelAdmin):
list_display = ("question", "text", "is_active", "sort_order")
list_filter = ("is_active", "question__category")
search_fields = ("question__prompt", "text")
class PlayerInline(admin.TabularInline):
model = Player
extra = 0
@admin.register(GameSession)
class GameSessionAdmin(admin.ModelAdmin):
list_display = ("code", "host", "status", "current_round", "created_at")
list_filter = ("status",)
inlines = [PlayerInline]
search_fields = ("code", "host__username")
@admin.register(RoundConfig)
class RoundConfigAdmin(admin.ModelAdmin):
list_display = ("session", "number", "category", "questions_count", "points_correct", "points_bluff")
list_filter = ("category",)
@admin.register(RoundQuestion)
class RoundQuestionAdmin(admin.ModelAdmin):
list_display = ("session", "round_number", "question")
@admin.register(LieAnswer)
class LieAnswerAdmin(admin.ModelAdmin):
list_display = ("round_question", "player", "text", "created_at")
@admin.register(Guess)
class GuessAdmin(admin.ModelAdmin):
list_display = ("round_question", "player", "selected_text", "is_correct", "fooled_player")
list_filter = ("is_correct",)
@admin.register(ScoreEvent)
class ScoreEventAdmin(admin.ModelAdmin):
list_display = ("session", "player", "delta", "reason", "created_at")
list_filter = ("reason",)