Fix table ordering bug

This commit is contained in:
Yohann D'ANELLO 2020-05-06 14:39:03 +02:00
parent c51bdd0d1a
commit 1a83aa0388
2 changed files with 19 additions and 25 deletions

View File

@ -1,5 +1,6 @@
import django_tables2 as tables import django_tables2 as tables
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_tables2 import A from django_tables2 import A
@ -54,7 +55,8 @@ class SolutionTable(tables.Table):
"tournament:detail", "tournament:detail",
args=[A("tournament.pk")], args=[A("tournament.pk")],
accessor=A("tournament"), accessor=A("tournament"),
verbose_name=_("tournament"), order_by=("team__tournament__date_start", "team__tournament__name",),
verbose_name=_("Tournament"),
) )
file = tables.LinkColumn( file = tables.LinkColumn(
@ -88,6 +90,7 @@ class SynthesisTable(tables.Table):
"tournament:detail", "tournament:detail",
args=[A("tournament.pk")], args=[A("tournament.pk")],
accessor=A("tournament"), accessor=A("tournament"),
order_by=("team__tournament__date_start", "team__tournament__name",),
verbose_name=_("tournament"), verbose_name=_("tournament"),
) )
@ -113,27 +116,29 @@ class SynthesisTable(tables.Table):
class PoolTable(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): def render_teams(self, record, value):
return ", ".join(team.trigram for team in value.all()) return format_html('<a href="{url}">{trigrams}</a>',
url=reverse_lazy('tournament:pool_detail', args=(record.pk,)),
trigrams=", ".join(team.trigram for team in value.all()))
def render_problems(self, value): def render_problems(self, value):
return ", ".join([str(pb) for pb in 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: class Meta:
model = Pool model = Pool
fields = ("teams", "tournament", "problems", "round", "juries", ) fields = ("teams", "tournament", "problems", "round", )
attrs = { attrs = {
'class': 'table table-condensed table-striped table-hover' '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,)),
}

View File

@ -10,14 +10,3 @@
<a href="{% url "tournament:create_pool" %}"><button class="btn btn-secondary btn-block">{% trans "Add pool" %}</button></a> <a href="{% url "tournament:create_pool" %}"><button class="btn btn-secondary btn-block">{% trans "Add pool" %}</button></a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block extrajavascript %}
<script>
$(document).ready(function() {
$(".row-control").click(function() {
location.href = $(this).data("href");
});
});
</script>
{% endblock %}