Adds distinct email in the dashboard

main
Laurent 4 weeks ago
parent 015934c663
commit 4fb9460572
  1. 8
      tournaments/admin.py
  2. 4
      tournaments/templates/admin/tournaments/dashboard.html

@ -6,7 +6,7 @@ from django.utils.html import escape
from django.urls import reverse, path from django.urls import reverse, path
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.shortcuts import render from django.shortcuts import render
from django.db.models import Avg from django.db.models import Avg, Count
from datetime import timedelta, datetime from datetime import timedelta, datetime
from biz.models import Prospect, ProspectGroup from biz.models import Prospect, ProspectGroup
@ -18,7 +18,6 @@ from .filters import TeamScoreTournamentListFilter, MatchTournamentListFilter, S
from sync.admin import SyncedObjectAdmin from sync.admin import SyncedObjectAdmin
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class CustomUserAdmin(UserAdmin): class CustomUserAdmin(UserAdmin):
@ -241,6 +240,10 @@ class TournamentAdmin(SyncedObjectAdmin):
avg_teams=Avg('tournament__team_count') avg_teams=Avg('tournament__team_count')
)['avg_teams'] or 0 )['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_entry_fee = Tournament.objects.exclude(is_deleted=True).aggregate(
avg_fee=Avg('entry_fee') avg_fee=Avg('entry_fee')
)['avg_fee'] or 0 )['avg_fee'] or 0
@ -325,6 +328,7 @@ class TournamentAdmin(SyncedObjectAdmin):
'tournaments_with_payment': tournaments_with_payment, 'tournaments_with_payment': tournaments_with_payment,
'avg_teams_per_tournament': round(avg_teams_per_tournament, 1), 'avg_teams_per_tournament': round(avg_teams_per_tournament, 1),
'avg_entry_fee': round(avg_entry_fee, 2), 'avg_entry_fee': round(avg_entry_fee, 2),
'email_count': email_count,
# User statistics # User statistics
'total_users': total_users, 'total_users': total_users,

@ -140,6 +140,10 @@
<div style="font-size: 20px; font-weight: bold;">{{ avg_teams_per_tournament }}</div> <div style="font-size: 20px; font-weight: bold;">{{ avg_teams_per_tournament }}</div>
<div style="opacity: 0.9; font-size: 14px;">Avg Teams/Tournament</div> <div style="opacity: 0.9; font-size: 14px;">Avg Teams/Tournament</div>
</div> </div>
<div>
<div style="font-size: 20px; font-weight: bold;">{{ avg_teams_per_tournament }}</div>
<div style="opacity: 0.9; font-size: 14px;">Distinct emails</div>
</div>
</div> </div>
</div> </div>

Loading…
Cancel
Save