diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index ebb8b4a..25a21c9 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 23:21+0200\n"
+"POT-Creation-Date: 2024-04-03 23:29+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello \n"
"Language-Team: LANGUAGE \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:841
+#: participation/models.py:672 participation/models.py:853
#: registration/models.py:674
#: 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:845
+#: participation/models.py:857
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:859
+#: draw/models.py:257 participation/models.py:871
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:1328
-#: participation/models.py:1337 participation/tables.py:84
+#: participation/admin.py:155 participation/models.py:1340
+#: participation/models.py:1349 participation/tables.py:84
msgid "pool"
msgstr "poule"
-#: draw/models.py:415 participation/models.py:1329
+#: draw/models.py:415 participation/models.py:1341
msgid "pools"
msgstr "poules"
-#: draw/models.py:427 participation/models.py:831 participation/models.py:1498
-#: participation/models.py:1528 participation/models.py:1570
+#: draw/models.py:427 participation/models.py:843 participation/models.py:1510
+#: participation/models.py:1540 participation/models.py:1582
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:1351
-#: participation/models.py:1535
+#: draw/models.py:464 draw/models.py:487 participation/models.py:1363
+#: participation/models.py:1547
#, 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:1358 participation/tables.py:112
+#: participation/models.py:1370 participation/tables.py:112
msgid "defender"
msgstr "défenseur⋅se"
-#: participation/admin.py:128 participation/models.py:1365
-#: participation/models.py:1582
+#: participation/admin.py:128 participation/models.py:1377
+#: participation/models.py:1594
msgid "opponent"
msgstr "opposant⋅e"
-#: participation/admin.py:132 participation/models.py:1372
-#: participation/models.py:1583
+#: participation/admin.py:132 participation/models.py:1384
+#: participation/models.py:1595
msgid "reporter"
msgstr "rapporteur⋅rice"
-#: participation/admin.py:187 participation/models.py:1533
+#: participation/admin.py:187 participation/models.py:1545
msgid "problem"
msgstr "numéro de problème"
@@ -880,7 +880,7 @@ msgstr ""
"tour, vous défendrez votre solution du problème "
"{problem}.
"
-#: participation/models.py:755 participation/models.py:793
+#: participation/models.py:755 participation/models.py:798
#, python-brace-format
msgid ""
"You will oppose the solution of the team {opponent} on the problème {problem}. Vous pouvez envoyer votre note "
"de synthèse sur cette page.
"
-#: participation/models.py:764 participation/models.py:801
+#: participation/models.py:764 participation/models.py:807
#, python-brace-format
msgid ""
"You will report the solution of the team {reporter} on the problème {problem}. Vous pouvez envoyer votre note "
"de synthèse sur cette page.
"
-#: participation/models.py:775 registration/models.py:540
+#: participation/models.py:780 registration/models.py:540
msgid "First round"
msgstr "Premier tour"
-#: participation/models.py:786
+#: participation/models.py:791
#, python-brace-format
msgid ""
"For the second round, you will defend your "
@@ -915,11 +915,11 @@ msgstr ""
"Pour le second tour, vous défendrez votre "
"solution du problème {problem}.
"
-#: participation/models.py:811 registration/models.py:551
+#: participation/models.py:823 registration/models.py:551
msgid "Second round"
msgstr "Second tour"
-#: participation/models.py:817
+#: participation/models.py:829
#, python-brace-format
msgid ""
"The tournament {tournament} is ended. You can check the results on the Le tournoi {tournament} est terminé. Vous pouvez consulter les résultats "
"sur la page du tournoi.
"
-#: participation/models.py:822
+#: participation/models.py:834
msgid "Tournament ended"
msgstr "Tournoi terminé"
-#: participation/models.py:832 participation/models.py:865
+#: participation/models.py:844 participation/models.py:877
msgid "participations"
msgstr "participations"
-#: participation/models.py:847 participation/models.py:848
+#: participation/models.py:859 participation/models.py:860
#, python-brace-format
msgid "Round {round}"
msgstr "Tour {round}"
-#: participation/models.py:871
+#: participation/models.py:883
msgid "juries"
msgstr "jurys"
-#: participation/models.py:880
+#: participation/models.py:892
msgid "president of the jury"
msgstr "président⋅e du jury"
-#: participation/models.py:887
+#: participation/models.py:899
msgid "BigBlueButton URL"
msgstr "Lien BigBlueButton"
-#: participation/models.py:888
+#: participation/models.py:900
msgid "The link of the BBB visio for this pool."
msgstr "Le lien du salon BBB pour cette poule."
-#: participation/models.py:893
+#: participation/models.py:905
msgid "results available"
msgstr "résultats disponibles"
-#: participation/models.py:894
+#: participation/models.py:906
msgid ""
"Check this case when results become accessible to teams. They stay "
"accessible to you. Only averages are given."
@@ -970,37 +970,37 @@ msgstr ""
"Ils restent toujours accessibles pour vous. Seules les moyennes sont "
"communiquées."
-#: participation/models.py:919
+#: participation/models.py:931
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:1311
+#: participation/models.py:1323
#, 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:1322
+#: participation/models.py:1334
#, 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:1342
+#: participation/models.py:1354
msgid "position"
msgstr "position"
-#: participation/models.py:1349
+#: participation/models.py:1361
msgid "defended solution"
msgstr "solution défendue"
-#: participation/models.py:1382
+#: participation/models.py:1394
msgid "observer"
msgstr "observateur⋅rice"
-#: participation/models.py:1387
+#: participation/models.py:1399
msgid "penalties"
msgstr "pénalités"
-#: participation/models.py:1389
+#: participation/models.py:1401
msgid ""
"Number of penalties for the defender. The defender will loose a 0.5 "
"coefficient per penalty."
@@ -1008,124 +1008,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:1465 participation/models.py:1468
-#: participation/models.py:1471 participation/models.py:1474
+#: participation/models.py:1477 participation/models.py:1480
+#: participation/models.py:1483 participation/models.py:1486
#, 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:1479
+#: participation/models.py:1491
#, python-brace-format
msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}"
-#: participation/models.py:1483 participation/models.py:1492
-#: participation/models.py:1577 participation/models.py:1619
+#: participation/models.py:1495 participation/models.py:1504
+#: participation/models.py:1589 participation/models.py:1631
msgid "passage"
msgstr "passage"
-#: participation/models.py:1484
+#: participation/models.py:1496
msgid "passages"
msgstr "passages"
-#: participation/models.py:1503
+#: participation/models.py:1515
msgid "difference"
msgstr "différence"
-#: participation/models.py:1504
+#: participation/models.py:1516
msgid "Score to add/remove on the final score"
msgstr "Score à ajouter/retrancher au score final"
-#: participation/models.py:1511
+#: participation/models.py:1523
msgid "tweak"
msgstr "harmonisation"
-#: participation/models.py:1512
+#: participation/models.py:1524
msgid "tweaks"
msgstr "harmonisations"
-#: participation/models.py:1540
+#: participation/models.py:1552
msgid "solution for the final tournament"
msgstr "solution pour la finale"
-#: participation/models.py:1545 participation/models.py:1588
+#: participation/models.py:1557 participation/models.py:1600
msgid "file"
msgstr "fichier"
-#: participation/models.py:1555
+#: participation/models.py:1567
#, 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:1557
+#: participation/models.py:1569
msgid "for final"
msgstr "pour la finale"
-#: participation/models.py:1560
+#: participation/models.py:1572
msgid "solution"
msgstr "solution"
-#: participation/models.py:1561
+#: participation/models.py:1573
msgid "solutions"
msgstr "solutions"
-#: participation/models.py:1594
+#: participation/models.py:1606
#, 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:1602
+#: participation/models.py:1614
msgid "synthesis"
msgstr "note de synthèse"
-#: participation/models.py:1603
+#: participation/models.py:1615
msgid "syntheses"
msgstr "notes de synthèse"
-#: participation/models.py:1612
+#: participation/models.py:1624
msgid "jury"
msgstr "jury"
-#: participation/models.py:1624
+#: participation/models.py:1636
msgid "defender writing note"
msgstr "note d'écrit défenseur⋅se"
-#: participation/models.py:1630
+#: participation/models.py:1642
msgid "defender oral note"
msgstr "note d'oral défenseur⋅se"
-#: participation/models.py:1636
+#: participation/models.py:1648
msgid "opponent writing note"
msgstr "note d'écrit opposant⋅e"
-#: participation/models.py:1642
+#: participation/models.py:1654
msgid "opponent oral note"
msgstr "note d'oral opposant⋅e"
-#: participation/models.py:1648
+#: participation/models.py:1660
msgid "reporter writing note"
msgstr "note d'écrit rapporteur⋅rice"
-#: participation/models.py:1654
+#: participation/models.py:1666
msgid "reporter oral note"
msgstr "note d'oral du rapporteur⋅rice"
-#: participation/models.py:1660
+#: participation/models.py:1672
msgid "observer note"
msgstr "note de l'observation"
-#: participation/models.py:1721
+#: participation/models.py:1733
#, python-brace-format
msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}"
-#: participation/models.py:1724
+#: participation/models.py:1736
msgid "note"
msgstr "note"
-#: participation/models.py:1725
+#: participation/models.py:1737
msgid "notes"
msgstr "notes"
diff --git a/participation/models.py b/participation/models.py
index 48cebd9..765e709 100644
--- a/participation/models.py
+++ b/participation/models.py
@@ -770,7 +770,12 @@ class Participation(models.Model):
solution_url=solution_url,
problem=reporter_passage.solution_number, passage_url=passage_url)
- content = defender_content + opponent_content + reporter_content
+ syntheses_template_begin = f"{settings.STATIC_URL}Fiche_synthèse."
+ syntheses_templates = " — ".join(f"{ext.upper()}"
+ for ext in ["pdf", "tex", "odt", "docx"])
+ syntheses_templates_content = f"
{_('Templates:')} {syntheses_templates}
"
+
+ content = defender_content + opponent_content + reporter_content + syntheses_templates_content
informations.append({
'title': _("First round"),
'type': "info",
@@ -796,6 +801,7 @@ class Participation(models.Model):
solution_url = opponent_passage.defended_solution.file.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 = _("You will report the solution of the team {reporter} on the "
@@ -804,9 +810,15 @@ class Participation(models.Model):
solution_url = reporter_passage.defended_solution.file.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
+ syntheses_template_begin = f"{settings.STATIC_URL}Fiche_synthèse."
+ syntheses_templates = " — ".join(f"{ext.upper()}"
+ for ext in ["pdf", "tex", "odt", "docx"])
+ syntheses_templates_content = f"
{_('Templates:')} {syntheses_templates}
"
+
+ content = defender_content + opponent_content + reporter_content + syntheses_templates_content
informations.append({
'title': _("Second round"),
'type': "info",