Display trigrams in note interface

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-03-29 19:22:20 +01:00
parent 6b16ed3cc8
commit 0006ecc90d
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 118 additions and 57 deletions

View File

@ -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: 2024-03-29 18:56+0100\n" "POT-Creation-Date: 2024-03-29 19:18+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n" "Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1073,10 +1073,10 @@ msgid "No defined team"
msgstr "Pas d'équipe définie" msgstr "Pas d'équipe définie"
#: participation/tables.py:142 #: participation/tables.py:142
#: participation/templates/participation/note_form.html:13 #: participation/templates/participation/note_form.html:14
#: participation/templates/participation/passage_detail.html:54 #: participation/templates/participation/passage_detail.html:54
#: participation/templates/participation/passage_detail.html:120 #: participation/templates/participation/passage_detail.html:153
#: participation/templates/participation/passage_detail.html:126 #: participation/templates/participation/passage_detail.html:159
#: participation/templates/participation/pool_detail.html:117 #: participation/templates/participation/pool_detail.html:117
#: participation/templates/participation/pool_detail.html:135 #: participation/templates/participation/pool_detail.html:135
#: participation/templates/participation/pool_detail.html:140 #: participation/templates/participation/pool_detail.html:140
@ -1116,6 +1116,14 @@ msgstr "Rejoindre"
msgid "Notes of" msgid "Notes of"
msgstr "Notes de" msgstr "Notes de"
#: participation/templates/participation/note_form.html:9
msgid "Defense of"
msgstr "Défense de"
#: participation/templates/participation/note_form.html:9
msgid "Pb."
msgstr "Pb."
#: participation/templates/participation/participation_detail.html:6 #: participation/templates/participation/participation_detail.html:6
#: participation/templates/participation/participation_detail.html:21 #: participation/templates/participation/participation_detail.html:21
#: participation/templates/participation/passage_detail.html:6 #: participation/templates/participation/passage_detail.html:6
@ -1171,7 +1179,7 @@ msgid "Upload solution"
msgstr "Envoyer une solution" msgstr "Envoyer une solution"
#: participation/templates/participation/participation_detail.html:65 #: participation/templates/participation/participation_detail.html:65
#: participation/templates/participation/passage_detail.html:132 #: participation/templates/participation/passage_detail.html:165
#: participation/templates/participation/pool_detail.html:145 #: participation/templates/participation/pool_detail.html:145
#: participation/templates/participation/team_detail.html:210 #: participation/templates/participation/team_detail.html:210
#: participation/templates/participation/upload_motivation_letter.html:13 #: participation/templates/participation/upload_motivation_letter.html:13
@ -1233,12 +1241,12 @@ msgid "No synthesis was uploaded yet."
msgstr "Aucune note de synthèse n'a encore été envoyée." msgstr "Aucune note de synthèse n'a encore été envoyée."
#: participation/templates/participation/passage_detail.html:52 #: participation/templates/participation/passage_detail.html:52
#: participation/templates/participation/passage_detail.html:125 #: participation/templates/participation/passage_detail.html:158
msgid "Update notes" msgid "Update notes"
msgstr "Modifier les notes" msgstr "Modifier les notes"
#: participation/templates/participation/passage_detail.html:58 #: participation/templates/participation/passage_detail.html:58
#: participation/templates/participation/passage_detail.html:131 #: participation/templates/participation/passage_detail.html:164
msgid "Upload synthesis" msgid "Upload synthesis"
msgstr "Envoyer une note de synthèse" msgstr "Envoyer une note de synthèse"
@ -1246,51 +1254,51 @@ msgstr "Envoyer une note de synthèse"
msgid "Notes detail" msgid "Notes detail"
msgstr "Détails des notes" msgstr "Détails des notes"
#: participation/templates/participation/passage_detail.html:73 #: participation/templates/participation/passage_detail.html:74
msgid "Average points for the defender writing:" msgid "Average points for the defender writing"
msgstr "Moyenne de l'écrit de l'équipe défenseuse :" msgstr "Moyenne de l'écrit de l'équipe défenseuse"
#: participation/templates/participation/passage_detail.html:76 #: participation/templates/participation/passage_detail.html:80
msgid "Average points for the defender oral:" msgid "Average points for the defender oral"
msgstr "Moyenne de l'oral de l'équipe défenseuse :" msgstr "Moyenne de l'oral de l'équipe défenseuse"
#: participation/templates/participation/passage_detail.html:79 #: participation/templates/participation/passage_detail.html:86
msgid "Average points for the opponent writing:" msgid "Average points for the opponent writing"
msgstr "Moyenne de l'écrit de l'équipe opposante :" msgstr "Moyenne de l'écrit de l'équipe opposante"
#: participation/templates/participation/passage_detail.html:82
msgid "Average points for the opponent oral:"
msgstr "Moyenne de l'oral de l'équipe opposante :"
#: participation/templates/participation/passage_detail.html:85
msgid "Average points for the reporter writing:"
msgstr "Moyenne de l'écrit de l'équipe rapportrice :"
#: participation/templates/participation/passage_detail.html:88
msgid "Average points for the reporter oral:"
msgstr "Moyenne de l'oral de l'équipe rapportrice :"
#: participation/templates/participation/passage_detail.html:92 #: participation/templates/participation/passage_detail.html:92
msgid "Average points for the observer oral:" msgid "Average points for the opponent oral"
msgstr "Moyenne de l'oral de l'observateur⋅rice :" msgstr "Moyenne de l'oral de l'équipe opposante"
#: participation/templates/participation/passage_detail.html:100 #: participation/templates/participation/passage_detail.html:98
msgid "Defender points:" msgid "Average points for the reporter writing"
msgstr "Points de l'équipe défenseuse :" msgstr "Moyenne de l'écrit de l'équipe rapportrice"
#: participation/templates/participation/passage_detail.html:103 #: participation/templates/participation/passage_detail.html:104
msgid "Opponent points:" msgid "Average points for the reporter oral"
msgstr "Points de l'équipe opposante :" msgstr "Moyenne de l'oral de l'équipe rapportrice"
#: participation/templates/participation/passage_detail.html:106 #: participation/templates/participation/passage_detail.html:111
msgid "Reporter points:" msgid "Average points for the observer oral"
msgstr "Points de l'équipe rapportrice :" msgstr "Moyenne de l'oral de l'observateur⋅rice"
#: participation/templates/participation/passage_detail.html:110 #: participation/templates/participation/passage_detail.html:122
msgid "Observer points:" msgid "Defender points"
msgstr "Points de l'équipe observatrice :" msgstr "Points de l'équipe défenseuse"
#: participation/templates/participation/passage_detail.html:119 #: participation/templates/participation/passage_detail.html:128
msgid "Opponent points"
msgstr "Points de l'équipe opposante"
#: participation/templates/participation/passage_detail.html:134
msgid "Reporter points"
msgstr "Points de l'équipe rapportrice"
#: participation/templates/participation/passage_detail.html:141
msgid "Observer points"
msgstr "Points de l'équipe observatrice"
#: participation/templates/participation/passage_detail.html:152
#: participation/templates/participation/passage_form.html:11 #: participation/templates/participation/passage_form.html:11
msgid "Update passage" msgid "Update passage"
msgstr "Modifier le passage" msgstr "Modifier le passage"
@ -1890,7 +1898,7 @@ msgstr "Feuilles de notations pour la poule {pool} du tournoi {tournament}.zip"
msgid "Notation sheets of {tournament}.zip" msgid "Notation sheets of {tournament}.zip"
msgstr "Feuilles de notation de {tournament}.zip" msgstr "Feuilles de notation de {tournament}.zip"
#: participation/views.py:1911 #: participation/views.py:1922
msgid "You can't upload a synthesis after the deadline." msgid "You can't upload a synthesis after the deadline."
msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite." msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."

View File

@ -6,6 +6,7 @@
<form method="post"> <form method="post">
<div id="form-content"> <div id="form-content">
<h4>{% trans "Notes of" %} {{ note.jury }}</h4> <h4>{% trans "Notes of" %} {{ note.jury }}</h4>
<h5>{% trans "Defense of" %} {{ note.passage.defender.team.trigram }}, {% trans "Pb." %} {{ note.passage.solution_number }}</h5>
<hr> <hr>
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}

View File

@ -70,26 +70,47 @@
<div class="card bg-body shadow"> <div class="card bg-body shadow">
<div class="card-body"> <div class="card-body">
<dl class="row"> <dl class="row">
<dt class="col-sm-8">{% trans "Average points for the defender writing:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the defender writing" %}
({{ passage.defender.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_defender_writing|floatformat }}/20</dd> <dd class="col-sm-4">{{ passage.average_defender_writing|floatformat }}/20</dd>
<dt class="col-sm-8">{% trans "Average points for the defender oral:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the defender oral" %}
({{ passage.defender.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_defender_oral|floatformat }}/16</dd> <dd class="col-sm-4">{{ passage.average_defender_oral|floatformat }}/16</dd>
<dt class="col-sm-8">{% trans "Average points for the opponent writing:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the opponent writing" %}
({{ passage.opponent.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_opponent_writing|floatformat }}/9</dd> <dd class="col-sm-4">{{ passage.average_opponent_writing|floatformat }}/9</dd>
<dt class="col-sm-8">{% trans "Average points for the opponent oral:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the opponent oral" %}
({{ passage.opponent.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_opponent_oral|floatformat }}/10</dd> <dd class="col-sm-4">{{ passage.average_opponent_oral|floatformat }}/10</dd>
<dt class="col-sm-8">{% trans "Average points for the reporter writing:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the reporter writing" %}
({{ passage.reporter.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_reporter_writing|floatformat }}/9</dd> <dd class="col-sm-4">{{ passage.average_reporter_writing|floatformat }}/9</dd>
<dt class="col-sm-8">{% trans "Average points for the reporter oral:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the reporter oral" %}
({{ passage.reporter.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_reporter_oral|floatformat }}/10</dd> <dd class="col-sm-4">{{ passage.average_reporter_oral|floatformat }}/10</dd>
{% if passage.observer %} {% if passage.observer %}
<dt class="col-sm-8">{% trans "Average points for the observer oral:" %}</dt> <dt class="col-sm-8">
{% trans "Average points for the observer oral" %}
({{ passage.observer.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_observer|floatformat }}/4</dd> <dd class="col-sm-4">{{ passage.average_observer|floatformat }}/4</dd>
{% endif %} {% endif %}
</dl> </dl>
@ -97,17 +118,29 @@
<hr> <hr>
<dl class="row"> <dl class="row">
<dt class="col-sm-8">{% trans "Defender points:" %}</dt> <dt class="col-sm-8">
{% trans "Defender points" %}
({{ passage.defender.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_defender|floatformat }}/52</dd> <dd class="col-sm-4">{{ passage.average_defender|floatformat }}/52</dd>
<dt class="col-sm-8">{% trans "Opponent points:" %}</dt> <dt class="col-sm-8">
{% trans "Opponent points" %}
({{ passage.opponent.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_opponent|floatformat }}/29</dd> <dd class="col-sm-4">{{ passage.average_opponent|floatformat }}/29</dd>
<dt class="col-sm-8">{% trans "Reporter points:" %}</dt> <dt class="col-sm-8">
{% trans "Reporter points" %}
({{ passage.reporter.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_reporter|floatformat }}/19</dd> <dd class="col-sm-4">{{ passage.average_reporter|floatformat }}/19</dd>
{% if passage.observer %} {% if passage.observer %}
<dt class="col-sm-8">{% trans "Observer points:" %}</dt> <dt class="col-sm-8">
{% trans "Observer points" %}
({{ passage.observer.team.trigram }}) :
</dt>
<dd class="col-sm-4">{{ passage.average_observer|floatformat }}/4</dd> <dd class="col-sm-4">{{ passage.average_observer|floatformat }}/4</dd>
{% endif %} {% endif %}
</dl> </dl>

View File

@ -1852,9 +1852,20 @@ class PassageDetailView(LoginRequiredMixin, DetailView):
context["notes"] = NoteTable(notes) context["notes"] = NoteTable(notes)
# Only display the observer column for 4-teams pools # Only display the observer column for 4-teams pools
if self.object.pool.participations.count() != 4:
context['notes']._sequence.remove('observer_oral') context['notes']._sequence.remove('observer_oral')
if 'notes' in context and not self.request.user.registration.is_admin: if 'notes' in context and not self.request.user.registration.is_admin:
context['notes']._sequence.remove('update') context['notes']._sequence.remove('update')
context['notes'].columns['defender_writing'].column.verbose_name += f" ({self.object.defender.team.trigram})"
context['notes'].columns['defender_oral'].column.verbose_name += f" ({self.object.defender.team.trigram})"
context['notes'].columns['opponent_writing'].column.verbose_name += f" ({self.object.opponent.team.trigram})"
context['notes'].columns['opponent_oral'].column.verbose_name += f" ({self.object.opponent.team.trigram})"
context['notes'].columns['reporter_writing'].column.verbose_name += f" ({self.object.reporter.team.trigram})"
context['notes'].columns['reporter_oral'].column.verbose_name += f" ({self.object.reporter.team.trigram})"
if self.object.observer:
context['notes'].columns['observer_oral'].column.verbose_name += f" ({self.object.observer.team.trigram})"
return context return context
@ -1942,7 +1953,15 @@ class NoteUpdateView(VolunteerMixin, UpdateView):
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super().get_form(form_class) form = super().get_form(form_class)
if not self.object.passage.observer: form.fields['defender_writing'].label += f" ({self.object.passage.defender.team.trigram})"
form.fields['defender_oral'].label += f" ({self.object.passage.defender.team.trigram})"
form.fields['opponent_writing'].label += f" ({self.object.passage.opponent.team.trigram})"
form.fields['opponent_oral'].label += f" ({self.object.passage.opponent.team.trigram})"
form.fields['reporter_writing'].label += f" ({self.object.passage.reporter.team.trigram})"
form.fields['reporter_oral'].label += f" ({self.object.passage.reporter.team.trigram})"
if self.object.passage.observer:
form.fields['observer_oral'].label += f" ({self.object.passage.observer.team.trigram})"
else:
# Set the note of the observer only for 4-teams pools # Set the note of the observer only for 4-teams pools
del form.fields['observer_oral'] del form.fields['observer_oral']
return form return form