From 1a83aa038801f7c4a5edc2c560d7d705081e3bad Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Wed, 6 May 2020 14:39:03 +0200 Subject: [PATCH] Fix table ordering bug --- apps/tournament/tables.py | 33 +++++++++++++++++------------ templates/tournament/pool_list.html | 11 ---------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/apps/tournament/tables.py b/apps/tournament/tables.py index ffcf3a5..6fcf95e 100644 --- a/apps/tournament/tables.py +++ b/apps/tournament/tables.py @@ -1,5 +1,6 @@ import django_tables2 as tables from django.urls import reverse_lazy +from django.utils.html import format_html from django.utils.translation import gettext_lazy as _ from django_tables2 import A @@ -54,7 +55,8 @@ class SolutionTable(tables.Table): "tournament:detail", args=[A("tournament.pk")], accessor=A("tournament"), - verbose_name=_("tournament"), + order_by=("team__tournament__date_start", "team__tournament__name",), + verbose_name=_("Tournament"), ) file = tables.LinkColumn( @@ -88,6 +90,7 @@ class SynthesisTable(tables.Table): "tournament:detail", args=[A("tournament.pk")], accessor=A("tournament"), + order_by=("team__tournament__date_start", "team__tournament__name",), verbose_name=_("tournament"), ) @@ -113,27 +116,29 @@ class SynthesisTable(tables.Table): class PoolTable(tables.Table): - problems = tables.Column(verbose_name=_("Problems")) + problems = tables.Column( + verbose_name=_("Problems"), + orderable=False, + ) - tournament = tables.Column(verbose_name=_("Tournament")) + tournament = tables.LinkColumn( + "tournament:detail", + args=[A("tournament.pk")], + verbose_name=_("Tournament"), + order_by=("teams__tournament__date_start", "teams__tournament__name",), + ) - def render_teams(self, value): - return ", ".join(team.trigram for team in value.all()) + def render_teams(self, record, value): + return format_html('{trigrams}', + url=reverse_lazy('tournament:pool_detail', args=(record.pk,)), + trigrams=", ".join(team.trigram for team in value.all())) def render_problems(self, value): return ", ".join([str(pb) for pb in value]) - def render_juries(self, value): - return ", ".join(str(jury) for jury in value.all()) - class Meta: model = Pool - fields = ("teams", "tournament", "problems", "round", "juries", ) + fields = ("teams", "tournament", "problems", "round", ) attrs = { 'class': 'table table-condensed table-striped table-hover' } - row_attrs = { - 'style': 'cursor: pointer;', - 'class': 'row-control', - 'data-href': lambda record: reverse_lazy('tournament:pool_detail', args=(record.pk,)), - } diff --git a/templates/tournament/pool_list.html b/templates/tournament/pool_list.html index 0722571..9a15348 100644 --- a/templates/tournament/pool_list.html +++ b/templates/tournament/pool_list.html @@ -10,14 +10,3 @@ {% endif %} {% endblock %} - - -{% block extrajavascript %} - -{% endblock %}