Files
SchulSchachTV/tournaments/admin.py
T

36 lines
1.1 KiB
Python

from django.contrib import admin
from .models import Tournament, Registration, Round, Match
class RegistrationInline(admin.TabularInline):
model = Registration
fk_name = 'tournament' # 👈 Wichtig: Explizite Rückverknüpfung zum Elternmodell
extra = 0
@admin.register(Tournament)
class TournamentAdmin(admin.ModelAdmin):
list_display = ('name', 'date', 'participant_count')
search_fields = ('name',)
inlines = [RegistrationInline]
def participant_count(self, obj):
return obj.registrations.count()
participant_count.short_description = "Teilnehmer"
class MatchInline(admin.TabularInline):
model = Match
fk_name = 'round_detail' # 👈 Wichtig: Explizite Rückverknüpfung zur Runde
extra = 0
@admin.register(Round)
class RoundAdmin(admin.ModelAdmin):
list_display = ('tournament', 'round_number')
inlines = [MatchInline]
@admin.register(Match)
class MatchAdmin(admin.ModelAdmin):
list_display = ('round_detail', 'player_white', 'player_black', 'result')
list_filter = ('result', 'round_detail__tournament')