diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index 506646f..440fe6d 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -185,7 +185,7 @@ class Tournament(models.Model): team = TeamRanking(names, ranking, points, team_registration.logo) rankings.append(team) - rankings.sort(key=lambda s: s.ranking) + rankings.sort(key=lambda r: r.ranking) return rankings def teams(self): @@ -628,16 +628,17 @@ class TeamRanking: def __init__(self, names, ranking, points, image): self.names = names self.ranking = ranking - self.points = points + self.formatted_ranking = self.ordinal(ranking) + self.points = self.points_earned_display(points) self.image = image - def ranking_display(self): - return self.ordinal(self.ranking) + # def ranking_display(self): + # return self.ordinal(self.ranking) - def points_earned_display(self): - if self.points is None: + def points_earned_display(self, points): + if points is None: return "" - return f"+{self.points} pt{self.plural_suffix(self.points)}" + return f"+{points} pt{self.plural_suffix(points)}" def plural_suffix(self, n): if n > 1: @@ -656,7 +657,8 @@ class TeamRanking: def to_dict(self): return { "names": self.names, - "ranking": self.ranking_display(), - "points": self.points_earned_display(), + "ranking": self.ranking, + "formatted_ranking": self.formatted_ranking, + "points": self.points, "image": self.image, } diff --git a/tournaments/static/tournaments/css/style.css b/tournaments/static/tournaments/css/style.css index 71e073c..670873f 100644 --- a/tournaments/static/tournaments/css/style.css +++ b/tournaments/static/tournaments/css/style.css @@ -200,6 +200,10 @@ tr { padding-top: 4px; } +.padding-left { + padding-left: 10px; +} + .names { /* width: 70%; */ } @@ -605,6 +609,15 @@ h-margin { } +.table-row-3-colums-ranks { + display: grid; + grid-template-columns: 80px 1fr auto ; + /* first column is a hack */ + align-items: center; + /* Vertically center the content within each column */ + padding: 5px 0px; +} + .table-row-3-colums-teams { display: grid; grid-template-columns: 1px auto auto 80px; diff --git a/tournaments/templates/tournaments/broadcast.html b/tournaments/templates/tournaments/broadcast.html index a2c4de8..f293aa2 100644 --- a/tournaments/templates/tournaments/broadcast.html +++ b/tournaments/templates/tournaments/broadcast.html @@ -15,6 +15,7 @@
Matchs
Poules
Convocations
+
Classement
diff --git a/tournaments/templates/tournaments/broadcast_club.html b/tournaments/templates/tournaments/broadcast_club.html index 867b90a..81b0859 100644 --- a/tournaments/templates/tournaments/broadcast_club.html +++ b/tournaments/templates/tournaments/broadcast_club.html @@ -33,6 +33,7 @@ Matchs | Poules | Convocations + Classement diff --git a/tournaments/templates/tournaments/broadcasted_ranking.html b/tournaments/templates/tournaments/broadcasted_ranking.html new file mode 100644 index 0000000..7e9247b --- /dev/null +++ b/tournaments/templates/tournaments/broadcasted_ranking.html @@ -0,0 +1,14 @@ +{% load static %} + +
+ +
+
+ + +
+ +
+
diff --git a/tournaments/templates/tournaments/broadcasted_rankings.html b/tournaments/templates/tournaments/broadcasted_rankings.html new file mode 100644 index 0000000..4902cfd --- /dev/null +++ b/tournaments/templates/tournaments/broadcasted_rankings.html @@ -0,0 +1,71 @@ +{% extends 'tournaments/broadcast_base.html' %} + +{% block head_title %}Classement{% endblock %} +{% block first_title %}{{ tournament.display_name }}{% endblock %} +{% block second_title %}Classement{% endblock %} + +{% block content %} + +{% load static %} + +
+ +
+ +
+
+ +{% endblock %} diff --git a/tournaments/templates/tournaments/ranking_row.html b/tournaments/templates/tournaments/ranking_row.html index 97f4b03..f568638 100644 --- a/tournaments/templates/tournaments/ranking_row.html +++ b/tournaments/templates/tournaments/ranking_row.html @@ -1,13 +1,13 @@ {% load static %} -
+
-
+
{{ ranking.formatted_ranking }}
+
{% for name in ranking.names %}
{{ name }}
{% endfor %}
-
{{ ranking.points_earned_display }}
-
{{ ranking.ranking_display }}
+
{{ ranking.points }}
diff --git a/tournaments/urls.py b/tournaments/urls.py index a6242c3..cc8dca5 100644 --- a/tournaments/urls.py +++ b/tournaments/urls.py @@ -11,7 +11,6 @@ urlpatterns = [ include([ path('', views.tournament, name='tournament'), path('teams/', views.tournament_teams, name='tournament-teams'), - path('rankings/', views.tournament_rankings, name='tournament-rankings'), path('summons/', views.tournament_summons, name='tournament-summons'), path('broadcast/summons/', views.tournament_broadcasted_summons, name='broadcasted-summons'), path('summons/json/', views.tournament_summons_json, name='tournament-summons-json'), @@ -23,6 +22,9 @@ urlpatterns = [ path('broadcast/group-stages/', views.tournament_broadcasted_group_stages, name='broadcasted-group-stages'), path('group-stages/', views.tournament_group_stages, name='group-stages'), path('group-stages/json/', views.tournament_live_group_stage_json, name='group-stages-json'), + path('rankings/', views.tournament_rankings, name='tournament-rankings'), + path('rankings/json/', views.tournament_rankings_json, name='tournament-rankings-json'), + path('broadcast/rankings/', views.tournament_broadcast_rankings, name='broadcasted-rankings'), ]) ), path('players/', views.players, name='players'), diff --git a/tournaments/views.py b/tournaments/views.py index 9a8fc9f..8c720e8 100644 --- a/tournaments/views.py +++ b/tournaments/views.py @@ -45,7 +45,6 @@ def index(request): if tournament.display_tournament(): filtered_after_tomorrow_tournaments.append(tournament) - unfinished_tournaments = Tournament.objects.filter(*q_unfinished).order_by('start_date') live_tournaments = [] @@ -102,16 +101,6 @@ def tournament(request, tournament_id): 'match_groups': match_groups, }) -def tournament_rankings(request, tournament_id): - - tournament = get_object_or_404(Tournament, pk=tournament_id) - rankings = tournament.rankings() - - return render(request, 'tournaments/rankings.html', { - 'tournament': tournament, - 'rankings': rankings, - }) - def tournament_teams(request, tournament_id): tournament = get_object_or_404(Tournament, pk=tournament_id) @@ -215,6 +204,30 @@ def tournament_live_group_stage_json(request, tournament_id): data = json.dumps(gs_dicts) return HttpResponse(data, content_type='application/json') +def tournament_rankings(request, tournament_id): + tournament = get_object_or_404(Tournament, pk=tournament_id) + rankings = tournament.rankings() + + return render(request, 'tournaments/rankings.html', { + 'tournament': tournament, + 'rankings': rankings, + }) + +def tournament_rankings_json(request, tournament_id): + tournament = get_object_or_404(Tournament, pk=tournament_id) + rankings = tournament.rankings() + + data = json.dumps(rankings, default=vars) + return HttpResponse(data, content_type='application/json') + +def tournament_broadcast_rankings(request, tournament_id): + tournament = get_object_or_404(Tournament, pk=tournament_id) + return render(request, 'tournaments/broadcasted_rankings.html', { + 'tournament': tournament, + 'qr_code_url': qr_code_url(request, tournament_id), + 'qr_code_options': qr_code_options(), + }) + def players(request): return render(request, 'tournaments/test.html')