from django.contrib import admin from tournaments.models.device_token import DeviceToken from .models import Club, TeamScore, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamRegistration, PlayerRegistration, Purchase, Court, DateInterval, FailedApiCall, Log from django.contrib.auth.admin import UserAdmin from .forms import CustomUserCreationForm, CustomUserChangeForm from .filters import TeamScoreTournamentListFilter, MatchTournamentListFilter, SimpleTournamentListFilter, MatchTypeListFilter, SimpleIndexListFilter from sync.admin import AutoUpdateAdmin class CustomUserAdmin(UserAdmin): form = CustomUserChangeForm add_form = CustomUserCreationForm model = CustomUser list_display = ['email', 'username', 'is_active', 'is_staff', 'first_name', 'last_name', 'date_joined', 'event_count'] fieldsets = [ (None, {'fields': ['id', 'username', 'email', 'password', 'first_name', 'last_name', 'is_active', 'clubs', 'country', 'phone', 'licence_id', 'umpire_code', 'summons_message_body', 'summons_message_signature', 'summons_available_payment_methods', 'summons_display_format', 'summons_display_entry_fee', 'summons_use_full_custom_message', 'match_formats_default_duration', 'bracket_match_format_preference', 'group_stage_match_format_preference', 'loser_bracket_match_format_preference', 'device_id', 'agents' ]}), ] add_fieldsets = [ ( None, { "classes": ["wide"], "fields": ['username', 'email', 'password1', 'password2', 'first_name', 'last_name', 'clubs', 'country', 'phone', 'licence_id', 'umpire_code', ], }, ), ] class EventAdmin(AutoUpdateAdmin): list_display = ['creation_date', 'name', 'club', 'creator'] list_filter = ['creator'] ordering = ['-creation_date'] class TournamentAdmin(AutoUpdateAdmin): list_display = ['display_name', 'event', 'is_private', 'start_date', 'payment', 'is_canceled'] list_filter = ['is_deleted'] class TeamRegistrationAdmin(AutoUpdateAdmin): list_display = ['player_names', 'group_stage_position', 'name', 'tournament'] list_filter = [SimpleTournamentListFilter] class TeamScoreAdmin(AutoUpdateAdmin): list_display = ['team_registration', 'score', 'walk_out', 'match'] list_filter = [TeamScoreTournamentListFilter] class RoundAdmin(AutoUpdateAdmin): list_display = ['tournament', 'name', 'index', 'parent'] list_filter = [SimpleTournamentListFilter, SimpleIndexListFilter] search_fields = ['id'] class PlayerRegistrationAdmin(AutoUpdateAdmin): list_display = ['first_name', 'last_name', 'licence_id', 'rank'] search_fields = ('first_name', 'last_name') class MatchAdmin(AutoUpdateAdmin): list_display = ['__str__', 'round', 'group_stage', 'start_date', 'index'] list_filter = [MatchTypeListFilter, MatchTournamentListFilter, SimpleIndexListFilter] class GroupStageAdmin(AutoUpdateAdmin): list_display = ['tournament', 'index', 'start_date'] list_filter = [SimpleTournamentListFilter] class ClubAdmin(AutoUpdateAdmin): list_display = ['name', 'acronym', 'city', 'creator', 'events_count', 'broadcast_code'] search_fields = ('name', 'acronym') class PurchaseAdmin(AutoUpdateAdmin): list_display = ['user', 'identifier', 'product_id', 'quantity', 'purchase_date', 'revocation_date'] class CourtAdmin(AutoUpdateAdmin): list_display = ['index', 'name', 'club'] class DateIntervalAdmin(AutoUpdateAdmin): list_display = ['court_index', 'event'] class FailedApiCallAdmin(AutoUpdateAdmin): list_display = ['date', 'user', 'type', 'error'] list_filter = ['user'] class LogAdmin(AutoUpdateAdmin): list_display = ['date', 'user', 'message'] list_filter = ['user'] class DeviceTokenAdmin(AutoUpdateAdmin): list_display = ['user', 'value'] admin.site.register(CustomUser, CustomUserAdmin) admin.site.register(Club, ClubAdmin) admin.site.register(Event, EventAdmin) admin.site.register(Round, RoundAdmin) admin.site.register(GroupStage, GroupStageAdmin) admin.site.register(Match, MatchAdmin) admin.site.register(TeamScore, TeamScoreAdmin) admin.site.register(TeamRegistration, TeamRegistrationAdmin) admin.site.register(Tournament, TournamentAdmin) admin.site.register(PlayerRegistration, PlayerRegistrationAdmin) admin.site.register(Purchase, PurchaseAdmin) admin.site.register(Court, CourtAdmin) admin.site.register(DateInterval, DateIntervalAdmin) admin.site.register(FailedApiCall, FailedApiCallAdmin) admin.site.register(Log, LogAdmin) admin.site.register(DeviceToken, DeviceTokenAdmin)