Add links to solutions also for second round

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-04-03 23:21:23 +02:00
parent eddb741eb7
commit 6add9a1419
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 114 additions and 132 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:12+0200\n"
"POT-Creation-Date: 2024-04-03 23:21+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:837
#: registration/models.py:673
#: participation/models.py:672 participation/models.py:841
#: 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:841
#: participation/models.py:845
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:855
#: draw/models.py:257 participation/models.py:859
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:1324
#: participation/models.py:1333 participation/tables.py:84
#: participation/admin.py:155 participation/models.py:1328
#: participation/models.py:1337 participation/tables.py:84
msgid "pool"
msgstr "poule"
#: draw/models.py:415 participation/models.py:1325
#: draw/models.py:415 participation/models.py:1329
msgid "pools"
msgstr "poules"
#: draw/models.py:427 participation/models.py:827 participation/models.py:1494
#: participation/models.py:1524 participation/models.py:1566
#: draw/models.py:427 participation/models.py:831 participation/models.py:1498
#: participation/models.py:1528 participation/models.py:1570
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:1347
#: participation/models.py:1531
#: draw/models.py:464 draw/models.py:487 participation/models.py:1351
#: participation/models.py:1535
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
@ -334,7 +334,7 @@ msgstr "Continuer le tirage"
#: draw/templates/draw/tournament_content.html:216 participation/admin.py:167
#: participation/models.py:252 participation/models.py:663
#: participation/templates/participation/tournament_harmonize.html:15
#: registration/models.py:157 registration/models.py:664
#: registration/models.py:157 registration/models.py:665
#: registration/tables.py:39
#: registration/templates/registration/payment_form.html:52
msgid "team"
@ -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:1354 participation/tables.py:112
#: participation/models.py:1358 participation/tables.py:112
msgid "defender"
msgstr "défenseur⋅se"
#: participation/admin.py:128 participation/models.py:1361
#: participation/models.py:1578
#: participation/admin.py:128 participation/models.py:1365
#: participation/models.py:1582
msgid "opponent"
msgstr "opposant⋅e"
#: participation/admin.py:132 participation/models.py:1368
#: participation/models.py:1579
#: participation/admin.py:132 participation/models.py:1372
#: participation/models.py:1583
msgid "reporter"
msgstr "rapporteur⋅rice"
#: participation/admin.py:187 participation/models.py:1529
#: participation/admin.py:187 participation/models.py:1533
msgid "problem"
msgstr "numéro de problème"
@ -880,7 +880,7 @@ msgstr ""
"tour, vous défendrez <a href='{solution_url}'>votre solution du problème "
"{problem}</a>.</p>"
#: participation/models.py:755
#: participation/models.py:755 participation/models.py:793
#, python-brace-format
msgid ""
"<p>You will oppose the solution of the team {opponent} on the <a "
@ -888,10 +888,10 @@ msgid ""
"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>"
"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
#: participation/models.py:764 participation/models.py:801
#, python-brace-format
msgid ""
"<p>You will report the solution of the team {reporter} on the <a "
@ -902,7 +902,7 @@ msgstr ""
"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
#: participation/models.py:775 registration/models.py:540
msgid "First round"
msgstr "Premier tour"
@ -915,33 +915,11 @@ 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 "
"{problem}. 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 problème "
"{problem}. Vous pouvez envoyer votre note de synthèse sur <a "
"href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:799
#, python-brace-format
msgid ""
"<p>You will report the solution of the team {reporter} on the 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 problème "
"{problem}. Vous pouvez envoyer votre note de synthèse sur <a "
"href='{passage_url}'>cette page</a>.</p>"
#: participation/models.py:807 registration/models.py:550
#: participation/models.py:811 registration/models.py:551
msgid "Second round"
msgstr "Second tour"
#: participation/models.py:813
#: participation/models.py:817
#, python-brace-format
msgid ""
"<p>The tournament {tournament} is ended. You can check the results on the <a "
@ -950,40 +928,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:818
#: participation/models.py:822
msgid "Tournament ended"
msgstr "Tournoi terminé"
#: participation/models.py:828 participation/models.py:861
#: participation/models.py:832 participation/models.py:865
msgid "participations"
msgstr "participations"
#: participation/models.py:843 participation/models.py:844
#: participation/models.py:847 participation/models.py:848
#, python-brace-format
msgid "Round {round}"
msgstr "Tour {round}"
#: participation/models.py:867
#: participation/models.py:871
msgid "juries"
msgstr "jurys"
#: participation/models.py:876
#: participation/models.py:880
msgid "president of the jury"
msgstr "président⋅e du jury"
#: participation/models.py:883
#: participation/models.py:887
msgid "BigBlueButton URL"
msgstr "Lien BigBlueButton"
#: participation/models.py:884
#: participation/models.py:888
msgid "The link of the BBB visio for this pool."
msgstr "Le lien du salon BBB pour cette poule."
#: participation/models.py:889
#: participation/models.py:893
msgid "results available"
msgstr "résultats disponibles"
#: participation/models.py:890
#: participation/models.py:894
msgid ""
"Check this case when results become accessible to teams. They stay "
"accessible to you. Only averages are given."
@ -992,37 +970,37 @@ msgstr ""
"Ils restent toujours accessibles pour vous. Seules les moyennes sont "
"communiquées."
#: participation/models.py:915
#: participation/models.py:919
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:1307
#: participation/models.py:1311
#, 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:1318
#: participation/models.py:1322
#, 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:1338
#: participation/models.py:1342
msgid "position"
msgstr "position"
#: participation/models.py:1345
#: participation/models.py:1349
msgid "defended solution"
msgstr "solution défendue"
#: participation/models.py:1378
#: participation/models.py:1382
msgid "observer"
msgstr "observateur⋅rice"
#: participation/models.py:1383
#: participation/models.py:1387
msgid "penalties"
msgstr "pénalités"
#: participation/models.py:1385
#: participation/models.py:1389
msgid ""
"Number of penalties for the defender. The defender will loose a 0.5 "
"coefficient per penalty."
@ -1030,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:1461 participation/models.py:1464
#: participation/models.py:1467 participation/models.py:1470
#: participation/models.py:1465 participation/models.py:1468
#: participation/models.py:1471 participation/models.py:1474
#, 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:1475
#: participation/models.py:1479
#, python-brace-format
msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}"
#: participation/models.py:1479 participation/models.py:1488
#: participation/models.py:1573 participation/models.py:1615
#: participation/models.py:1483 participation/models.py:1492
#: participation/models.py:1577 participation/models.py:1619
msgid "passage"
msgstr "passage"
#: participation/models.py:1480
#: participation/models.py:1484
msgid "passages"
msgstr "passages"
#: participation/models.py:1499
#: participation/models.py:1503
msgid "difference"
msgstr "différence"
#: participation/models.py:1500
#: participation/models.py:1504
msgid "Score to add/remove on the final score"
msgstr "Score à ajouter/retrancher au score final"
#: participation/models.py:1507
#: participation/models.py:1511
msgid "tweak"
msgstr "harmonisation"
#: participation/models.py:1508
#: participation/models.py:1512
msgid "tweaks"
msgstr "harmonisations"
#: participation/models.py:1536
#: participation/models.py:1540
msgid "solution for the final tournament"
msgstr "solution pour la finale"
#: participation/models.py:1541 participation/models.py:1584
#: participation/models.py:1545 participation/models.py:1588
msgid "file"
msgstr "fichier"
#: participation/models.py:1551
#: participation/models.py:1555
#, 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:1553
#: participation/models.py:1557
msgid "for final"
msgstr "pour la finale"
#: participation/models.py:1556
#: participation/models.py:1560
msgid "solution"
msgstr "solution"
#: participation/models.py:1557
#: participation/models.py:1561
msgid "solutions"
msgstr "solutions"
#: participation/models.py:1590
#: participation/models.py:1594
#, 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:1598
#: participation/models.py:1602
msgid "synthesis"
msgstr "note de synthèse"
#: participation/models.py:1599
#: participation/models.py:1603
msgid "syntheses"
msgstr "notes de synthèse"
#: participation/models.py:1608
#: participation/models.py:1612
msgid "jury"
msgstr "jury"
#: participation/models.py:1620
#: participation/models.py:1624
msgid "defender writing note"
msgstr "note d'écrit défenseur⋅se"
#: participation/models.py:1626
#: participation/models.py:1630
msgid "defender oral note"
msgstr "note d'oral défenseur⋅se"
#: participation/models.py:1632
#: participation/models.py:1636
msgid "opponent writing note"
msgstr "note d'écrit opposant⋅e"
#: participation/models.py:1638
#: participation/models.py:1642
msgid "opponent oral note"
msgstr "note d'oral opposant⋅e"
#: participation/models.py:1644
#: participation/models.py:1648
msgid "reporter writing note"
msgstr "note d'écrit rapporteur⋅rice"
#: participation/models.py:1650
#: participation/models.py:1654
msgid "reporter oral note"
msgstr "note d'oral du rapporteur⋅rice"
#: participation/models.py:1656
#: participation/models.py:1660
msgid "observer note"
msgstr "note de l'observation"
#: participation/models.py:1717
#: participation/models.py:1721
#, python-brace-format
msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}"
#: participation/models.py:1720
#: participation/models.py:1724
msgid "note"
msgstr "note"
#: participation/models.py:1721
#: participation/models.py:1725
msgid "notes"
msgstr "notes"
@ -1615,7 +1593,7 @@ msgid "Payment of"
msgstr "Paiement de"
#: participation/templates/participation/team_detail.html:132
#: registration/models.py:594
#: registration/models.py:595
msgid "grouped"
msgstr "groupé"
@ -1810,7 +1788,7 @@ msgid "Rank"
msgstr "Rang"
#: participation/templates/participation/tournament_harmonize.html:16
#: registration/models.py:565
#: registration/models.py:566
msgid "Note"
msgstr "Note"
@ -2150,7 +2128,7 @@ msgstr ""
msgid "registration"
msgstr "inscription"
#: registration/models.py:130 registration/models.py:590
#: registration/models.py:130 registration/models.py:591
msgid "registrations"
msgstr "inscriptions"
@ -2457,7 +2435,7 @@ msgstr ""
msgid "Payments"
msgstr "Paiements"
#: registration/models.py:534 registration/models.py:545
#: registration/models.py:535 registration/models.py:546
#, python-brace-format
msgid ""
"<p>You are in the jury of the pool {pool} for the tournament of "
@ -2466,7 +2444,7 @@ msgstr ""
"<p>Vous êtes dans le jury de la poule {pool} pour le tournoi {tournament}. "
"Vous pouvez trouver la page de la poule <a href='{pool_url}'>ici</a>.</p>"
#: registration/models.py:558
#: registration/models.py:559
#, python-brace-format
msgid ""
"<p>You don't have given any note as a jury for the passage {passage} in the "
@ -2477,15 +2455,15 @@ msgstr ""
"{passage} dans la poule {pool} de {tournament}. Vous pouvez donner vos notes "
"<a href='{passage_url}'>ici</a>.</p>"
#: registration/models.py:574
#: registration/models.py:575
msgid "volunteer registration"
msgstr "inscription de bénévole"
#: registration/models.py:575
#: registration/models.py:576
msgid "volunteer registrations"
msgstr "inscriptions de bénévoles"
#: registration/models.py:596
#: registration/models.py:597
msgid ""
"If set to true, then one payment is made for the full team, for example if "
"the school pays for all."
@ -2493,100 +2471,100 @@ msgstr ""
"Si vrai, alors un seul paiement est fait pour toute l'équipe, par exemple si "
"le lycée paie pour tout le monde."
#: registration/models.py:601
#: registration/models.py:602
msgid "total amount"
msgstr "montant total"
#: registration/models.py:602
#: registration/models.py:603
msgid "Corresponds to the total required amount to pay, in euros."
msgstr "Correspond au montant total à payer, en euros."
#: registration/models.py:607
#: registration/models.py:608
msgid "token"
msgstr "jeton"
#: registration/models.py:610
#: registration/models.py:611
msgid "A token to authorize external users to make this payment."
msgstr "Un jeton pour autoriser des utilisateurs externes à faire ce paiement."
#: registration/models.py:614
#: registration/models.py:615
msgid "for final tournament"
msgstr "pour la finale"
#: registration/models.py:619
#: registration/models.py:620
msgid "type"
msgstr "type"
#: registration/models.py:622
#: registration/models.py:623
msgid "No payment"
msgstr "Pas de paiement"
#: registration/models.py:623
#: registration/models.py:624
#: registration/templates/registration/payment_form.html:72
msgid "Credit card"
msgstr "Carte bancaire"
#: registration/models.py:624
#: registration/models.py:625
msgid "Scholarship"
msgstr "Notification de bourse"
#: registration/models.py:625
#: registration/models.py:626
#: registration/templates/registration/payment_form.html:77
msgid "Bank transfer"
msgstr "Virement bancaire"
#: registration/models.py:626
#: registration/models.py:627
msgid "Other (please indicate)"
msgstr "Autre (veuillez spécifier)"
#: registration/models.py:627
#: registration/models.py:628
msgid "The tournament is free"
msgstr "Le tournoi est gratuit"
#: registration/models.py:634
#: registration/models.py:635
msgid "Hello Asso checkout intent ID"
msgstr "ID de l'intention de paiement Hello Asso"
#: registration/models.py:641
#: registration/models.py:642
msgid "receipt"
msgstr "justificatif"
#: registration/models.py:642
#: registration/models.py:643
msgid "only if you have a scholarship or if you chose a bank transfer."
msgstr ""
"Nécessaire seulement si vous déclarez être boursièr⋅e ou si vous payez par "
"virement bancaire."
#: registration/models.py:649
#: registration/models.py:650
msgid "additional information"
msgstr "informations additionnelles"
#: registration/models.py:650
#: registration/models.py:651
msgid "To help us to find your payment."
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
#: registration/models.py:656
#: registration/models.py:657
msgid "payment valid"
msgstr "paiement valide"
#: registration/models.py:716
#: registration/models.py:717
msgid "Reminder for your payment"
msgstr "Rappel pour votre paiement"
#: registration/models.py:727
#: registration/models.py:728
msgid "Payment confirmation"
msgstr "Confirmation de paiement"
#: registration/models.py:749
#: registration/models.py:750
#, python-brace-format
msgid "Payment of {registrations}"
msgstr "Paiements de {registrations}"
#: registration/models.py:752
#: registration/models.py:753
msgid "payment"
msgstr "paiement"
#: registration/models.py:753
#: registration/models.py:754
msgid "payments"
msgstr "paiements"

View File

@ -748,14 +748,14 @@ class Participation(models.Model):
"<p>For the first round, you will defend "
"<a href='{solution_url}'>your solution of the problem {problem}</a>.</p>")
draw_url = reverse_lazy("draw:index")
solution_url = defender_passage.defended_solution.url
solution_url = defender_passage.defended_solution.file.url
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 "
"<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
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,
@ -764,7 +764,7 @@ class Participation(models.Model):
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
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,
@ -786,18 +786,22 @@ class Participation(models.Model):
defender_text = _("<p>For the second round, you will defend "
"<a href='{solution_url}'>your solution of the problem {problem}</a>.</p>")
draw_url = reverse_lazy("draw:index")
solution_url = defender_passage.defended_solution.url
solution_url = defender_passage.defended_solution.file.url
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.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,
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.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,
problem=reporter_passage.solution_number, passage_url=passage_url)