77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
# Copyright (C) 2020 by Animath
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
from django.utils import formats
|
|
from django.utils.text import format_lazy
|
|
from django.utils.translation import gettext_lazy as _
|
|
import django_tables2 as tables
|
|
|
|
from .models import Team, Tournament
|
|
|
|
|
|
# noinspection PyTypeChecker
|
|
class TeamTable(tables.Table):
|
|
name = tables.LinkColumn(
|
|
'participation:team_detail',
|
|
args=[tables.A("id")],
|
|
verbose_name=lambda: _("name").capitalize(),
|
|
)
|
|
|
|
problem = tables.Column(
|
|
accessor="participation__problem",
|
|
verbose_name=lambda: _("problem number").capitalize(),
|
|
)
|
|
|
|
class Meta:
|
|
attrs = {
|
|
'class': 'table table condensed table-striped',
|
|
}
|
|
model = Team
|
|
fields = ('name', 'trigram', 'problem',)
|
|
template_name = 'django_tables2/bootstrap4.html'
|
|
|
|
|
|
# noinspection PyTypeChecker
|
|
class ParticipationTable(tables.Table):
|
|
name = tables.LinkColumn(
|
|
'participation:participation_detail',
|
|
args=[tables.A("id")],
|
|
verbose_name=lambda: _("name").capitalize(),
|
|
accessor="team__name",
|
|
)
|
|
|
|
trigram = tables.Column(
|
|
verbose_name=lambda: _("trigram").capitalize(),
|
|
accessor="team__trigram",
|
|
)
|
|
|
|
problem = tables.Column(
|
|
verbose_name=lambda: _("problem number").capitalize(),
|
|
)
|
|
|
|
class Meta:
|
|
attrs = {
|
|
'class': 'table table condensed table-striped',
|
|
}
|
|
model = Team
|
|
fields = ('name', 'trigram', 'problem',)
|
|
template_name = 'django_tables2/bootstrap4.html'
|
|
|
|
|
|
class TournamentTable(tables.Table):
|
|
name = tables.LinkColumn()
|
|
|
|
date = tables.Column(_("date").capitalize, accessor="id")
|
|
|
|
def render_date(self, record):
|
|
return format_lazy(_("From {start} to {end}"),
|
|
start=formats.date_format(record.date_start, format="SHORT_DATE_FORMAT", use_l10n=True),
|
|
end=formats.date_format(record.date_end, format="SHORT_DATE_FORMAT", use_l10n=True))
|
|
|
|
class Meta:
|
|
attrs = {
|
|
'class': 'table table condensed table-striped',
|
|
}
|
|
model = Tournament
|
|
fields = ('name', 'date',)
|
|
template_name = 'django_tables2/bootstrap4.html'
|