48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import (
|
|
CheatFlag,
|
|
Contest,
|
|
ContestAnswer,
|
|
ContestAttempt,
|
|
ContestQuestion,
|
|
LeaderboardSnapshot,
|
|
Question,
|
|
QuestionVersion,
|
|
RatingHistory,
|
|
RealtimeMatch,
|
|
)
|
|
|
|
|
|
class ContestQuestionInline(admin.TabularInline):
|
|
model = ContestQuestion
|
|
extra = 1
|
|
|
|
|
|
@admin.register(Contest)
|
|
class ContestAdmin(admin.ModelAdmin):
|
|
list_display = ("title", "kind", "track", "status", "starts_at", "ends_at")
|
|
list_filter = ("kind", "track", "status")
|
|
inlines = [ContestQuestionInline]
|
|
|
|
|
|
@admin.register(ContestAttempt)
|
|
class ContestAttemptAdmin(admin.ModelAdmin):
|
|
list_display = ("id", "user", "contest", "status", "score", "duration_ms", "started_at")
|
|
list_filter = ("status", "contest__kind", "contest__track")
|
|
readonly_fields = ("started_at", "submitted_at")
|
|
|
|
|
|
@admin.register(CheatFlag)
|
|
class CheatFlagAdmin(admin.ModelAdmin):
|
|
list_display = ("attempt", "reason", "status", "created_at")
|
|
list_filter = ("status", "reason")
|
|
|
|
|
|
admin.site.register(Question)
|
|
admin.site.register(QuestionVersion)
|
|
admin.site.register(ContestAnswer)
|
|
admin.site.register(RealtimeMatch)
|
|
admin.site.register(RatingHistory)
|
|
admin.site.register(LeaderboardSnapshot)
|