mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 14:32:19 +01:00 
			
		
		
		
	Display passages as a table
This commit is contained in:
		@@ -6,7 +6,7 @@ from django.utils.text import format_lazy
 | 
				
			|||||||
from django.utils.translation import gettext_lazy as _
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
import django_tables2 as tables
 | 
					import django_tables2 as tables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .models import Note, Pool, Team, Tournament
 | 
					from .models import Note, Passage, Pool, Team, Tournament
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# noinspection PyTypeChecker
 | 
					# noinspection PyTypeChecker
 | 
				
			||||||
@@ -98,6 +98,31 @@ class PoolTable(tables.Table):
 | 
				
			|||||||
        template_name = 'django_tables2/bootstrap4.html'
 | 
					        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):
 | 
					class NoteTable(tables.Table):
 | 
				
			||||||
    jury = tables.Column(
 | 
					    jury = tables.Column(
 | 
				
			||||||
        attrs={
 | 
					        attrs={
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{% extends "base.html" %}
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% load i18n %}
 | 
					{% load django_tables2 i18n %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% block content %}
 | 
					{% block content %}
 | 
				
			||||||
    <div class="card bg-light shadow">
 | 
					    <div class="card bg-light shadow">
 | 
				
			||||||
@@ -25,12 +25,6 @@
 | 
				
			|||||||
                <dt class="col-sm-3">{% trans "Juries:" %}</dt>
 | 
					                <dt class="col-sm-3">{% trans "Juries:" %}</dt>
 | 
				
			||||||
                <dd class="col-sm-9">{{ pool.juries.all|join:", " }}</dd>
 | 
					                <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>
 | 
					                <dt class="col-sm-3">{% trans "Defended solutions:" %}</dt>
 | 
				
			||||||
                <dd class="col-sm-9">
 | 
					                <dd class="col-sm-9">
 | 
				
			||||||
                    {% for passage in pool.passages.all %}
 | 
					                    {% for passage in pool.passages.all %}
 | 
				
			||||||
@@ -61,6 +55,12 @@
 | 
				
			|||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <hr>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <h3>{% trans "Passages" %}</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {% render_table passages %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    {% trans "Add passage" as modal_title %}
 | 
					    {% trans "Add passage" as modal_title %}
 | 
				
			||||||
    {% trans "Add" as modal_button %}
 | 
					    {% trans "Add" as modal_button %}
 | 
				
			||||||
    {% url "participation:passage_create" pk=pool.pk as modal_action %}
 | 
					    {% url "participation:passage_create" pk=pool.pk as modal_action %}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@ from tfjm.views import AdminMixin
 | 
				
			|||||||
from .forms import JoinTeamForm, NoteForm, ParticipationForm, PassageForm, PoolForm, PoolTeamsForm, \
 | 
					from .forms import JoinTeamForm, NoteForm, ParticipationForm, PassageForm, PoolForm, PoolTeamsForm, \
 | 
				
			||||||
    RequestValidationForm, TeamForm, TournamentForm, ValidateParticipationForm, SolutionForm, SynthesisForm
 | 
					    RequestValidationForm, TeamForm, TournamentForm, ValidateParticipationForm, SolutionForm, SynthesisForm
 | 
				
			||||||
from .models import Note, Participation, Passage, Pool, Team, Tournament, Solution, Synthesis
 | 
					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):
 | 
					class CreateTeamView(LoginRequiredMixin, CreateView):
 | 
				
			||||||
@@ -489,6 +489,8 @@ class PoolDetailView(LoginRequiredMixin, DetailView):
 | 
				
			|||||||
    def get_context_data(self, **kwargs):
 | 
					    def get_context_data(self, **kwargs):
 | 
				
			||||||
        context = super().get_context_data(**kwargs)
 | 
					        context = super().get_context_data(**kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        context["passages"] = PassageTable(self.object.passages.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        notes = dict()
 | 
					        notes = dict()
 | 
				
			||||||
        for participation in self.object.participations.all():
 | 
					        for participation in self.object.participations.all():
 | 
				
			||||||
            notes[participation] = self.object.average(participation)
 | 
					            notes[participation] = self.object.average(participation)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: TFJM\n"
 | 
					"Project-Id-Version: TFJM\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: \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"
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
 | 
					"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
@@ -293,7 +293,7 @@ msgstr "solution défendue"
 | 
				
			|||||||
msgid "Problem #{problem}"
 | 
					msgid "Problem #{problem}"
 | 
				
			||||||
msgstr "Problème n°{problem}"
 | 
					msgstr "Problème n°{problem}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:356
 | 
					#: apps/participation/models.py:356 apps/participation/tables.py:105
 | 
				
			||||||
msgid "defender"
 | 
					msgid "defender"
 | 
				
			||||||
msgstr "défenseur"
 | 
					msgstr "défenseur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -478,9 +478,9 @@ msgstr "Rejoindre"
 | 
				
			|||||||
#: apps/participation/templates/participation/passage_detail.html:44
 | 
					#: apps/participation/templates/participation/passage_detail.html:44
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:100
 | 
					#: apps/participation/templates/participation/passage_detail.html:100
 | 
				
			||||||
#: apps/participation/templates/participation/passage_detail.html:105
 | 
					#: apps/participation/templates/participation/passage_detail.html:105
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:58
 | 
					#: apps/participation/templates/participation/pool_detail.html:52
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:70
 | 
					#: apps/participation/templates/participation/pool_detail.html:68
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:75
 | 
					#: apps/participation/templates/participation/pool_detail.html:73
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:84
 | 
					#: apps/participation/templates/participation/team_detail.html:84
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:143
 | 
					#: apps/participation/templates/participation/team_detail.html:143
 | 
				
			||||||
#: apps/participation/templates/participation/tournament_form.html:12
 | 
					#: apps/participation/templates/participation/tournament_form.html:12
 | 
				
			||||||
@@ -646,34 +646,34 @@ msgid "Juries:"
 | 
				
			|||||||
msgstr "Jurys :"
 | 
					msgstr "Jurys :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:28
 | 
					#: apps/participation/templates/participation/pool_detail.html:28
 | 
				
			||||||
msgid "Passages:"
 | 
					 | 
				
			||||||
msgstr "Passages :"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:34
 | 
					 | 
				
			||||||
msgid "Defended solutions:"
 | 
					msgid "Defended solutions:"
 | 
				
			||||||
msgstr "Solutions défendues :"
 | 
					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
 | 
					#: apps/participation/templates/participation/tournament_detail.html:79
 | 
				
			||||||
msgid "Ranking"
 | 
					msgid "Ranking"
 | 
				
			||||||
msgstr "Classement"
 | 
					msgstr "Classement"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:57
 | 
					#: apps/participation/templates/participation/pool_detail.html:51
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:64
 | 
					#: apps/participation/templates/participation/pool_detail.html:62
 | 
				
			||||||
msgid "Add passage"
 | 
					msgid "Add passage"
 | 
				
			||||||
msgstr "Ajouter un passage"
 | 
					msgstr "Ajouter un passage"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:59
 | 
					#: apps/participation/templates/participation/pool_detail.html:53
 | 
				
			||||||
#: apps/participation/templates/participation/pool_detail.html:74
 | 
					#: apps/participation/templates/participation/pool_detail.html:72
 | 
				
			||||||
msgid "Update teams"
 | 
					msgid "Update teams"
 | 
				
			||||||
msgstr "Modifier les équipes"
 | 
					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
 | 
					#: apps/participation/templates/participation/tournament_detail.html:91
 | 
				
			||||||
msgid "Add"
 | 
					msgid "Add"
 | 
				
			||||||
msgstr "Ajouter"
 | 
					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
 | 
					#: apps/participation/templates/participation/pool_form.html:11
 | 
				
			||||||
msgid "Update pool"
 | 
					msgid "Update pool"
 | 
				
			||||||
msgstr "Modifier la poule"
 | 
					msgstr "Modifier la poule"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user