39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from django.contrib import admin
|
|
from .models import Tournament, Registration, Round, Match
|
|
|
|
|
|
class RegistrationInline(admin.TabularInline):
|
|
model = Registration
|
|
extra = 0
|
|
# autocomplete_fields entfernt, um Startkonflikte zu vermeiden.
|
|
# Normale Select-Boxen sind für <= 50 Spieler besser!
|
|
|
|
@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
|
|
extra = 0
|
|
# autocomplete_fields hier ebenfalls entfernt
|
|
|
|
@admin.register(Round)
|
|
class RoundAdmin(admin.ModelAdmin):
|
|
list_display = ('tournament', 'round_number')
|
|
list_filter = ('tournament',)
|
|
inlines = [MatchInline]
|
|
|
|
|
|
@admin.register(Match)
|
|
class MatchAdmin(admin.ModelAdmin):
|
|
list_display = ('round_detail', 'player_white', 'player_black', 'result')
|
|
list_filter = ('result', 'round_detail__tournament')
|
|
|