Add direct links to the opponent and reporter solutions

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-04-03 23:14:59 +02:00
parent 78e8a92c3a
commit a763abf781
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 110 additions and 82 deletions

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-03 23:04+0200\n"
"POT-Creation-Date: 2024-04-03 23:12+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -30,14 +30,14 @@ msgstr "équipes"
#: draw/admin.py:53 draw/admin.py:71 draw/admin.py:88 draw/models.py:26
#: participation/admin.py:79 participation/admin.py:140
#: participation/admin.py:171 participation/models.py:648
#: participation/models.py:672 participation/models.py:831
#: participation/models.py:672 participation/models.py:837
#: registration/models.py:673
#: registration/templates/registration/payment_form.html:53
msgid "tournament"
msgstr "tournoi"
#: draw/admin.py:92 draw/models.py:234 draw/models.py:433
#: participation/models.py:835
#: participation/models.py:841
msgid "round"
msgstr "tour"
@ -175,7 +175,7 @@ msgstr "La poule en cours, où les équipes choisissent leurs problèmes"
msgid "rounds"
msgstr "tours"
#: draw/models.py:257 participation/models.py:849
#: draw/models.py:257 participation/models.py:855
msgid "letter"
msgstr "lettre"
@ -214,17 +214,17 @@ msgid "Pool {letter}{number}"
msgstr "Poule {letter}{number}"
#: draw/models.py:414 draw/models.py:441 participation/admin.py:136
#: participation/admin.py:155 participation/models.py:1318
#: participation/models.py:1327 participation/tables.py:84
#: participation/admin.py:155 participation/models.py:1324
#: participation/models.py:1333 participation/tables.py:84
msgid "pool"
msgstr "poule"
#: draw/models.py:415 participation/models.py:1319
#: draw/models.py:415 participation/models.py:1325
msgid "pools"
msgstr "poules"
#: draw/models.py:427 participation/models.py:821 participation/models.py:1488
#: participation/models.py:1518 participation/models.py:1560
#: draw/models.py:427 participation/models.py:827 participation/models.py:1494
#: participation/models.py:1524 participation/models.py:1566
msgid "participation"
msgstr "participation"
@ -248,8 +248,8 @@ msgid ""
msgstr ""
"L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1."
#: draw/models.py:464 draw/models.py:487 participation/models.py:1341
#: participation/models.py:1525
#: draw/models.py:464 draw/models.py:487 participation/models.py:1347
#: participation/models.py:1531
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
@ -457,21 +457,21 @@ msgid "selected for final"
msgstr "sélectionnée pour la finale"
#: participation/admin.py:124 participation/admin.py:183
#: participation/models.py:1348 participation/tables.py:112
#: participation/models.py:1354 participation/tables.py:112
msgid "defender"
msgstr "défenseur⋅se"
#: participation/admin.py:128 participation/models.py:1355
#: participation/models.py:1572
#: participation/admin.py:128 participation/models.py:1361
#: participation/models.py:1578
msgid "opponent"
msgstr "opposant⋅e"
#: participation/admin.py:132 participation/models.py:1362
#: participation/models.py:1573
#: participation/admin.py:132 participation/models.py:1368
#: participation/models.py:1579
msgid "reporter"
msgstr "rapporteur⋅rice"
#: participation/admin.py:187 participation/models.py:1523
#: participation/admin.py:187 participation/models.py:1529
msgid "problem"
msgstr "numéro de problème"
@ -880,7 +880,42 @@ msgstr ""
"tour, vous défendrez <a href='{solution_url}'>votre solution du problème "
"{problem}</a>.</p>"
#: participation/models.py:755 participation/models.py:787
#: participation/models.py:755
#, python-brace-format
msgid ""
"<p>You will oppose the solution of the team {opponent} on the <a "
"href='{solution_url}'>problem {problem}</a>. You can upload your synthesis "
"sheet on <a href='{passage_url}'>this page</a>.</p>"
msgstr ""
"<p>Vous opposerez la solution de l'équipe {opponent} sur le <a "
"href='{solution_url}'>problème {problem}</a>. Vous pouvez envoyer votre "
"note de synthèse sur <a href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:764
#, python-brace-format
msgid ""
"<p>You will report the solution of the team {reporter} on the <a "
"href='{solution_url}'>problem {problem}. You can upload your synthesis sheet "
"on <a href='{passage_url}'>this page</a>.</p>"
msgstr ""
"<p>Vous rapporterez la solution de l'équipe {reporter} sur le <a "
"href='{solution_url}'>problème {problem}</a>. Vous pouvez envoyer votre note "
"de synthèse sur <a href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:775 registration/models.py:539
msgid "First round"
msgstr "Premier tour"
#: participation/models.py:786
#, python-brace-format
msgid ""
"<p>For the second round, you will defend <a href='{solution_url}'>your "
"solution of the problem {problem}</a>.</p>"
msgstr ""
"<p>Pour le second tour, vous défendrez <a href='{solution_url}'>votre "
"solution du problème {problem}</a>.</p>"
#: participation/models.py:793
#, python-brace-format
msgid ""
"<p>You will oppose the solution of the team {opponent} on the problem "
@ -891,7 +926,7 @@ msgstr ""
"{problem}. Vous pouvez envoyer votre note de synthèse sur <a "
"href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:761 participation/models.py:793
#: participation/models.py:799
#, python-brace-format
msgid ""
"<p>You will report the solution of the team {reporter} on the problem "
@ -902,24 +937,11 @@ msgstr ""
"{problem}. Vous pouvez envoyer votre note de synthèse sur <a "
"href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:769 registration/models.py:539
msgid "First round"
msgstr "Premier tour"
#: participation/models.py:780
#, python-brace-format
msgid ""
"<p>For the second round, you will defend <a href='{solution_url}'>your "
"solution of the problem {problem}</a>.</p>"
msgstr ""
"<p>Pour le second tour, vous défendrez <a href='{solution_url}'>votre "
"solution du problème {problem}</a>.</p>"
#: participation/models.py:801 registration/models.py:550
#: participation/models.py:807 registration/models.py:550
msgid "Second round"
msgstr "Second tour"
#: participation/models.py:807
#: participation/models.py:813
#, python-brace-format
msgid ""
"<p>The tournament {tournament} is ended. You can check the results on the <a "
@ -928,40 +950,40 @@ msgstr ""
"<p>Le tournoi {tournament} est terminé. Vous pouvez consulter les résultats "
"sur la <a href='{url}'>page du tournoi</a>.</p>"
#: participation/models.py:812
#: participation/models.py:818
msgid "Tournament ended"
msgstr "Tournoi terminé"
#: participation/models.py:822 participation/models.py:855
#: participation/models.py:828 participation/models.py:861
msgid "participations"
msgstr "participations"
#: participation/models.py:837 participation/models.py:838
#: participation/models.py:843 participation/models.py:844
#, python-brace-format
msgid "Round {round}"
msgstr "Tour {round}"
#: participation/models.py:861
#: participation/models.py:867
msgid "juries"
msgstr "jurys"
#: participation/models.py:870
#: participation/models.py:876
msgid "president of the jury"
msgstr "président⋅e du jury"
#: participation/models.py:877
#: participation/models.py:883
msgid "BigBlueButton URL"
msgstr "Lien BigBlueButton"
#: participation/models.py:878
#: participation/models.py:884
msgid "The link of the BBB visio for this pool."
msgstr "Le lien du salon BBB pour cette poule."
#: participation/models.py:883
#: participation/models.py:889
msgid "results available"
msgstr "résultats disponibles"
#: participation/models.py:884
#: participation/models.py:890
msgid ""
"Check this case when results become accessible to teams. They stay "
"accessible to you. Only averages are given."
@ -970,37 +992,37 @@ msgstr ""
"Ils restent toujours accessibles pour vous. Seules les moyennes sont "
"communiquées."
#: participation/models.py:909
#: participation/models.py:915
msgid "The president of the jury must be part of the jury."
msgstr "Læ président⋅e du jury doit faire partie du jury."
#: participation/models.py:1301
#: participation/models.py:1307
#, python-brace-format
msgid "The jury {jury} is not part of the jury for this pool."
msgstr "{jury} ne fait pas partie du jury pour cette poule."
#: participation/models.py:1312
#: participation/models.py:1318
#, python-brace-format
msgid "Pool of day {round} for tournament {tournament} with teams {teams}"
msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}"
#: participation/models.py:1332
#: participation/models.py:1338
msgid "position"
msgstr "position"
#: participation/models.py:1339
#: participation/models.py:1345
msgid "defended solution"
msgstr "solution défendue"
#: participation/models.py:1372
#: participation/models.py:1378
msgid "observer"
msgstr "observateur⋅rice"
#: participation/models.py:1377
#: participation/models.py:1383
msgid "penalties"
msgstr "pénalités"
#: participation/models.py:1379
#: participation/models.py:1385
msgid ""
"Number of penalties for the defender. The defender will loose a 0.5 "
"coefficient per penalty."
@ -1008,124 +1030,124 @@ msgstr ""
"Nombre de pénalités pour l'équipe défenseuse. Elle perd un coefficient 0.5 "
"sur sa présentation orale par pénalité."
#: participation/models.py:1455 participation/models.py:1458
#: participation/models.py:1461 participation/models.py:1464
#: participation/models.py:1467 participation/models.py:1470
#, python-brace-format
msgid "Team {trigram} is not registered in the pool."
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
#: participation/models.py:1469
#: participation/models.py:1475
#, python-brace-format
msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}"
#: participation/models.py:1473 participation/models.py:1482
#: participation/models.py:1567 participation/models.py:1609
#: participation/models.py:1479 participation/models.py:1488
#: participation/models.py:1573 participation/models.py:1615
msgid "passage"
msgstr "passage"
#: participation/models.py:1474
#: participation/models.py:1480
msgid "passages"
msgstr "passages"
#: participation/models.py:1493
#: participation/models.py:1499
msgid "difference"
msgstr "différence"
#: participation/models.py:1494
#: participation/models.py:1500
msgid "Score to add/remove on the final score"
msgstr "Score à ajouter/retrancher au score final"
#: participation/models.py:1501
#: participation/models.py:1507
msgid "tweak"
msgstr "harmonisation"
#: participation/models.py:1502
#: participation/models.py:1508
msgid "tweaks"
msgstr "harmonisations"
#: participation/models.py:1530
#: participation/models.py:1536
msgid "solution for the final tournament"
msgstr "solution pour la finale"
#: participation/models.py:1535 participation/models.py:1578
#: participation/models.py:1541 participation/models.py:1584
msgid "file"
msgstr "fichier"
#: participation/models.py:1545
#: participation/models.py:1551
#, python-brace-format
msgid "Solution of team {team} for problem {problem}"
msgstr "Solution de l'équipe {team} pour le problème {problem}"
#: participation/models.py:1547
#: participation/models.py:1553
msgid "for final"
msgstr "pour la finale"
#: participation/models.py:1550
#: participation/models.py:1556
msgid "solution"
msgstr "solution"
#: participation/models.py:1551
#: participation/models.py:1557
msgid "solutions"
msgstr "solutions"
#: participation/models.py:1584
#: participation/models.py:1590
#, python-brace-format
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
msgstr ""
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
"{problem} de {defender}"
#: participation/models.py:1592
#: participation/models.py:1598
msgid "synthesis"
msgstr "note de synthèse"
#: participation/models.py:1593
#: participation/models.py:1599
msgid "syntheses"
msgstr "notes de synthèse"
#: participation/models.py:1602
#: participation/models.py:1608
msgid "jury"
msgstr "jury"
#: participation/models.py:1614
#: participation/models.py:1620
msgid "defender writing note"
msgstr "note d'écrit défenseur⋅se"
#: participation/models.py:1620
#: participation/models.py:1626
msgid "defender oral note"
msgstr "note d'oral défenseur⋅se"
#: participation/models.py:1626
#: participation/models.py:1632
msgid "opponent writing note"
msgstr "note d'écrit opposant⋅e"
#: participation/models.py:1632
#: participation/models.py:1638
msgid "opponent oral note"
msgstr "note d'oral opposant⋅e"
#: participation/models.py:1638
#: participation/models.py:1644
msgid "reporter writing note"
msgstr "note d'écrit rapporteur⋅rice"
#: participation/models.py:1644
#: participation/models.py:1650
msgid "reporter oral note"
msgstr "note d'oral du rapporteur⋅rice"
#: participation/models.py:1650
#: participation/models.py:1656
msgid "observer note"
msgstr "note de l'observation"
#: participation/models.py:1711
#: participation/models.py:1717
#, python-brace-format
msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}"
#: participation/models.py:1714
#: participation/models.py:1720
msgid "note"
msgstr "note"
#: participation/models.py:1715
#: participation/models.py:1721
msgid "notes"
msgstr "notes"

View File

@ -752,16 +752,22 @@ class Participation(models.Model):
defender_content = format_lazy(defender_text, draw_url=draw_url,
solution_url=solution_url, problem=defender_passage.solution_number)
opponent_text = _("<p>You will oppose the solution of the team {opponent} on the problem {problem}. "
opponent_text = _("<p>You will oppose the solution of the team {opponent} on the "
"<a href='{solution_url}'>problem {problem}</a>. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = opponent_passage.defended_solution.url
passage_url = reverse_lazy("participation:passage_detail", args=(opponent_passage.pk,))
opponent_content = format_lazy(opponent_text, opponent=opponent_passage.defender.team.trigram,
solution_url=solution_url,
problem=opponent_passage.solution_number, passage_url=passage_url)
reporter_text = _("<p>You will report the solution of the team {reporter} on the problem {problem}. "
reporter_text = _("<p>You will report the solution of the team {reporter} on the "
"<a href='{solution_url}'>problem {problem}. "
"You can upload your synthesis sheet on <a href='{passage_url}'>this page</a>.</p>")
solution_url = reporter_passage.defended_solution.url
passage_url = reverse_lazy("participation:passage_detail", args=(reporter_passage.pk,))
reporter_content = format_lazy(reporter_text, reporter=reporter_passage.defender.team.trigram,
solution_url=solution_url,
problem=reporter_passage.solution_number, passage_url=passage_url)
content = defender_content + opponent_content + reporter_content