From 3db14c6180cc6c0826872f69ea18e204f306be44 Mon Sep 17 00:00:00 2001 From: Laurent Date: Sun, 12 Oct 2025 10:40:05 +0200 Subject: [PATCH 1/4] attempt to fix crash --- sync/models/base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sync/models/base.py b/sync/models/base.py index cafbf24..3ac7535 100644 --- a/sync/models/base.py +++ b/sync/models/base.py @@ -132,9 +132,8 @@ class BaseModel(models.Model): children_by_model = self.get_children_by_model() for queryset in children_by_model.values(): for child in queryset: - children.append(child) - # Recursively get children of children if isinstance(child, BaseModel): + children.append(child) children.extend(child.get_recursive_children(processed_objects)) return children From 015934c66370d6a829191cd042b7b3daa828d60a Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 13 Oct 2025 14:41:30 +0200 Subject: [PATCH 2/4] change TeamRegistrationAdmin --- tournaments/admin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tournaments/admin.py b/tournaments/admin.py index 4d1a3f6..36f2021 100644 --- a/tournaments/admin.py +++ b/tournaments/admin.py @@ -357,12 +357,13 @@ class TeamRegistrationAdmin(SyncedObjectAdmin): list_display = ['player_names', 'group_stage', 'name', 'tournament', 'registration_date'] list_filter = [SimpleTournamentListFilter] search_fields = ['id'] + raw_id_fields = ['related_user', 'tournament'] class TeamScoreAdmin(SyncedObjectAdmin): list_display = ['team_registration', 'score', 'walk_out', 'match'] list_filter = [TeamScoreTournamentListFilter] search_fields = ['id', 'team_registration__player_registrations__first_name', 'team_registration__player_registrations__last_name'] - raw_id_fields = ['team_registration', 'match'] # Add this line + raw_id_fields = ['team_registration', 'match'] list_per_page = 50 # Controls pagination on the list view def get_queryset(self, request): From 4fb9460572ccc6a9863e1cbf367bdfdf206ec9b4 Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 14 Oct 2025 17:07:00 +0200 Subject: [PATCH 3/4] Adds distinct email in the dashboard --- tournaments/admin.py | 8 ++++++-- tournaments/templates/admin/tournaments/dashboard.html | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tournaments/admin.py b/tournaments/admin.py index 36f2021..c7511c8 100644 --- a/tournaments/admin.py +++ b/tournaments/admin.py @@ -6,7 +6,7 @@ from django.utils.html import escape from django.urls import reverse, path from django.utils.safestring import mark_safe from django.shortcuts import render -from django.db.models import Avg +from django.db.models import Avg, Count from datetime import timedelta, datetime from biz.models import Prospect, ProspectGroup @@ -18,7 +18,6 @@ from .filters import TeamScoreTournamentListFilter, MatchTournamentListFilter, S from sync.admin import SyncedObjectAdmin import logging - logger = logging.getLogger(__name__) class CustomUserAdmin(UserAdmin): @@ -241,6 +240,10 @@ class TournamentAdmin(SyncedObjectAdmin): avg_teams=Avg('tournament__team_count') )['avg_teams'] or 0 + email_count = PlayerRegistration.objects.aggregate( + total=Count('email', distinct=True) + )['total'] + avg_entry_fee = Tournament.objects.exclude(is_deleted=True).aggregate( avg_fee=Avg('entry_fee') )['avg_fee'] or 0 @@ -325,6 +328,7 @@ class TournamentAdmin(SyncedObjectAdmin): 'tournaments_with_payment': tournaments_with_payment, 'avg_teams_per_tournament': round(avg_teams_per_tournament, 1), 'avg_entry_fee': round(avg_entry_fee, 2), + 'email_count': email_count, # User statistics 'total_users': total_users, diff --git a/tournaments/templates/admin/tournaments/dashboard.html b/tournaments/templates/admin/tournaments/dashboard.html index d053c74..6f4f692 100644 --- a/tournaments/templates/admin/tournaments/dashboard.html +++ b/tournaments/templates/admin/tournaments/dashboard.html @@ -140,6 +140,10 @@
{{ avg_teams_per_tournament }}
Avg Teams/Tournament
+
+
{{ avg_teams_per_tournament }}
+
Distinct emails
+
From 1572bed50df339128976d9ec6c6c1570c7b6e23c Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 14 Oct 2025 17:16:28 +0200 Subject: [PATCH 4/4] fix margin --- tournaments/templates/admin/tournaments/dashboard.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tournaments/templates/admin/tournaments/dashboard.html b/tournaments/templates/admin/tournaments/dashboard.html index 6f4f692..5c944ad 100644 --- a/tournaments/templates/admin/tournaments/dashboard.html +++ b/tournaments/templates/admin/tournaments/dashboard.html @@ -136,12 +136,12 @@
{{ total_players }}
Total Players
-
+
{{ avg_teams_per_tournament }}
Avg Teams/Tournament
-
{{ avg_teams_per_tournament }}
+
{{ email_count }}
Distinct emails