Display passages as a table

This commit is contained in:
Yohann D'ANELLO 2021-01-14 19:33:56 +01:00
parent 7397afd236
commit 1a7a411e10
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 52 additions and 25 deletions

View File

@ -6,7 +6,7 @@ from django.utils.text import format_lazy
from django.utils.translation import gettext_lazy as _
import django_tables2 as tables
from .models import Note, Pool, Team, Tournament
from .models import Note, Passage, Pool, Team, Tournament
# noinspection PyTypeChecker
@ -98,6 +98,31 @@ class PoolTable(tables.Table):
template_name = 'django_tables2/bootstrap4.html'
class PassageTable(tables.Table):
defender = tables.LinkColumn(
"participation:passage_detail",
args=[tables.A("id")],
verbose_name=_("defender").capitalize,
)
def render_defender(self, value):
return value.team
def render_opponent(self, value):
return value.team
def render_reporter(self, value):
return value.team
class Meta:
attrs = {
'class': 'table table-condensed table-striped text-center',
}
model = Passage
fields = ('defender', 'opponent', 'reporter', 'place',)
template_name = 'django_tables2/bootstrap4.html'
class NoteTable(tables.Table):
jury = tables.Column(
attrs={

View File

@ -1,6 +1,6 @@
{% extends "base.html" %}
{% load i18n %}
{% load django_tables2 i18n %}
{% block content %}
<div class="card bg-light shadow">
@ -25,12 +25,6 @@
<dt class="col-sm-3">{% trans "Juries:" %}</dt>
<dd class="col-sm-9">{{ pool.juries.all|join:", " }}</dd>
<dt class="col-sm-3">{% trans "Passages:" %}</dt>
<dd class="col-sm-9">
{% for passage in pool.passages.all %}
<a href="{{ passage.get_absolute_url }}" data-turbolinks="false">{{ passage }}{% if not forloop.last %}, {% endif %}</a>
{% endfor %}
</dd>
<dt class="col-sm-3">{% trans "Defended solutions:" %}</dt>
<dd class="col-sm-9">
{% for passage in pool.passages.all %}
@ -61,6 +55,12 @@
{% endif %}
</div>
<hr>
<h3>{% trans "Passages" %}</h3>
{% render_table passages %}
{% trans "Add passage" as modal_title %}
{% trans "Add" as modal_button %}
{% url "participation:passage_create" pk=pool.pk as modal_action %}

View File

@ -26,7 +26,7 @@ from tfjm.views import AdminMixin
from .forms import JoinTeamForm, NoteForm, ParticipationForm, PassageForm, PoolForm, PoolTeamsForm, \
RequestValidationForm, TeamForm, TournamentForm, ValidateParticipationForm, SolutionForm, SynthesisForm
from .models import Note, Participation, Passage, Pool, Team, Tournament, Solution, Synthesis
from .tables import TeamTable, TournamentTable, ParticipationTable, PoolTable, NoteTable
from .tables import NoteTable, PassageTable, PoolTable, TeamTable, TournamentTable, ParticipationTable
class CreateTeamView(LoginRequiredMixin, CreateView):
@ -489,6 +489,8 @@ class PoolDetailView(LoginRequiredMixin, DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["passages"] = PassageTable(self.object.passages.all())
notes = dict()
for participation in self.object.participations.all():
notes[participation] = self.object.average(participation)

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-14 19:22+0100\n"
"POT-Creation-Date: 2021-01-14 19:30+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -293,7 +293,7 @@ msgstr "solution défendue"
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
#: apps/participation/models.py:356
#: apps/participation/models.py:356 apps/participation/tables.py:105
msgid "defender"
msgstr "défenseur"
@ -478,9 +478,9 @@ msgstr "Rejoindre"
#: apps/participation/templates/participation/passage_detail.html:44
#: apps/participation/templates/participation/passage_detail.html:100
#: apps/participation/templates/participation/passage_detail.html:105
#: apps/participation/templates/participation/pool_detail.html:58
#: apps/participation/templates/participation/pool_detail.html:70
#: apps/participation/templates/participation/pool_detail.html:75
#: apps/participation/templates/participation/pool_detail.html:52
#: apps/participation/templates/participation/pool_detail.html:68
#: apps/participation/templates/participation/pool_detail.html:73
#: apps/participation/templates/participation/team_detail.html:84
#: apps/participation/templates/participation/team_detail.html:143
#: apps/participation/templates/participation/tournament_form.html:12
@ -646,34 +646,34 @@ msgid "Juries:"
msgstr "Jurys :"
#: apps/participation/templates/participation/pool_detail.html:28
msgid "Passages:"
msgstr "Passages :"
#: apps/participation/templates/participation/pool_detail.html:34
msgid "Defended solutions:"
msgstr "Solutions défendues :"
#: apps/participation/templates/participation/pool_detail.html:44
#: apps/participation/templates/participation/pool_detail.html:38
#: apps/participation/templates/participation/tournament_detail.html:79
msgid "Ranking"
msgstr "Classement"
#: apps/participation/templates/participation/pool_detail.html:57
#: apps/participation/templates/participation/pool_detail.html:64
#: apps/participation/templates/participation/pool_detail.html:51
#: apps/participation/templates/participation/pool_detail.html:62
msgid "Add passage"
msgstr "Ajouter un passage"
#: apps/participation/templates/participation/pool_detail.html:59
#: apps/participation/templates/participation/pool_detail.html:74
#: apps/participation/templates/participation/pool_detail.html:53
#: apps/participation/templates/participation/pool_detail.html:72
msgid "Update teams"
msgstr "Modifier les équipes"
#: apps/participation/templates/participation/pool_detail.html:65
#: apps/participation/templates/participation/pool_detail.html:60
msgid "Passages"
msgstr "Passages"
#: apps/participation/templates/participation/pool_detail.html:63
#: apps/participation/templates/participation/tournament_detail.html:91
msgid "Add"
msgstr "Ajouter"
#: apps/participation/templates/participation/pool_detail.html:69
#: apps/participation/templates/participation/pool_detail.html:67
#: apps/participation/templates/participation/pool_form.html:11
msgid "Update pool"
msgstr "Modifier la poule"