Add Google Sheets link on tournament and pool pages

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-03-30 19:15:21 +01:00
parent f1012efcaa
commit 6595409df0
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 180 additions and 145 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 19:18+0100\n" "POT-Creation-Date: 2024-03-30 19:13+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"
@ -22,22 +22,22 @@ msgid "API"
msgstr "API" msgstr "API"
#: draw/admin.py:39 draw/admin.py:57 draw/admin.py:75 #: draw/admin.py:39 draw/admin.py:57 draw/admin.py:75
#: participation/admin.py:109 participation/models.py:250 #: participation/admin.py:109 participation/models.py:254
#: participation/tables.py:88 #: participation/tables.py:88
msgid "teams" msgid "teams"
msgstr "équipes" msgstr "équipes"
#: draw/admin.py:53 draw/admin.py:71 draw/admin.py:88 draw/models.py:24 #: draw/admin.py:53 draw/admin.py:71 draw/admin.py:88 draw/models.py:24
#: participation/admin.py:79 participation/admin.py:140 #: participation/admin.py:79 participation/admin.py:140
#: participation/admin.py:171 participation/models.py:419 #: participation/admin.py:171 participation/models.py:638
#: participation/models.py:443 participation/models.py:513 #: participation/models.py:662 participation/models.py:732
#: registration/models.py:618 #: registration/models.py:618
#: registration/templates/registration/payment_form.html:53 #: registration/templates/registration/payment_form.html:53
msgid "tournament" msgid "tournament"
msgstr "tournoi" msgstr "tournoi"
#: draw/admin.py:92 draw/models.py:232 draw/models.py:427 #: draw/admin.py:92 draw/models.py:232 draw/models.py:427
#: participation/models.py:517 #: participation/models.py:736
msgid "round" msgid "round"
msgstr "tour" msgstr "tour"
@ -175,7 +175,7 @@ msgstr "La poule en cours, où les équipes choisissent leurs problèmes"
msgid "rounds" msgid "rounds"
msgstr "tours" msgstr "tours"
#: draw/models.py:255 participation/models.py:531 #: draw/models.py:255 participation/models.py:750
msgid "letter" msgid "letter"
msgstr "lettre" msgstr "lettre"
@ -214,17 +214,17 @@ msgid "Pool {letter}{number}"
msgstr "Poule {letter}{number}" msgstr "Poule {letter}{number}"
#: draw/models.py:408 draw/models.py:435 participation/admin.py:136 #: draw/models.py:408 draw/models.py:435 participation/admin.py:136
#: participation/admin.py:155 participation/models.py:601 #: participation/admin.py:155 participation/models.py:1227
#: participation/models.py:610 participation/tables.py:84 #: participation/models.py:1236 participation/tables.py:84
msgid "pool" msgid "pool"
msgstr "poule" msgstr "poule"
#: draw/models.py:409 participation/models.py:602 #: draw/models.py:409 participation/models.py:1228
msgid "pools" msgid "pools"
msgstr "poules" msgstr "poules"
#: draw/models.py:421 participation/models.py:503 participation/models.py:771 #: draw/models.py:421 participation/models.py:722 participation/models.py:1397
#: participation/models.py:801 participation/models.py:843 #: participation/models.py:1427 participation/models.py:1469
msgid "participation" msgid "participation"
msgstr "participation" msgstr "participation"
@ -248,8 +248,8 @@ msgid ""
msgstr "" msgstr ""
"L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1." "L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1."
#: draw/models.py:458 draw/models.py:481 participation/models.py:624 #: draw/models.py:458 draw/models.py:481 participation/models.py:1250
#: participation/models.py:808 #: participation/models.py:1434
#, python-brace-format #, python-brace-format
msgid "Problem #{problem}" msgid "Problem #{problem}"
msgstr "Problème n°{problem}" msgstr "Problème n°{problem}"
@ -332,7 +332,7 @@ msgid "Continue draw"
msgstr "Continuer le tirage" msgstr "Continuer le tirage"
#: draw/templates/draw/tournament_content.html:216 participation/admin.py:167 #: draw/templates/draw/tournament_content.html:216 participation/admin.py:167
#: participation/models.py:249 participation/models.py:434 #: participation/models.py:253 participation/models.py:653
#: registration/models.py:156 registration/models.py:609 #: registration/models.py:156 registration/models.py:609
#: registration/tables.py:39 #: registration/tables.py:39
#: registration/templates/registration/payment_form.html:52 #: registration/templates/registration/payment_form.html:52
@ -344,10 +344,10 @@ msgstr "équipe"
#: draw/templates/draw/tournament_content.html:228 #: draw/templates/draw/tournament_content.html:228
#: draw/templates/draw/tournament_content.html:229 #: draw/templates/draw/tournament_content.html:229
#: draw/templates/draw/tournament_content.html:230 #: draw/templates/draw/tournament_content.html:230
#: participation/templates/participation/pool_detail.html:85 #: participation/templates/participation/pool_detail.html:97
#: participation/templates/participation/pool_detail.html:89 #: participation/templates/participation/pool_detail.html:101
#: participation/templates/participation/pool_detail.html:94 #: participation/templates/participation/pool_detail.html:106
#: participation/templates/participation/pool_detail.html:98 #: participation/templates/participation/pool_detail.html:110
msgid "Room" msgid "Room"
msgstr "Salle" msgstr "Salle"
@ -451,26 +451,26 @@ msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
#: participation/admin.py:87 participation/models.py:455 #: participation/admin.py:87 participation/models.py:674
msgid "selected for final" msgid "selected for final"
msgstr "sélectionnée pour la finale" msgstr "sélectionnée pour la finale"
#: participation/admin.py:124 participation/admin.py:183 #: participation/admin.py:124 participation/admin.py:183
#: participation/models.py:631 participation/tables.py:112 #: participation/models.py:1257 participation/tables.py:112
msgid "defender" msgid "defender"
msgstr "défenseur⋅se" msgstr "défenseur⋅se"
#: participation/admin.py:128 participation/models.py:638 #: participation/admin.py:128 participation/models.py:1264
#: participation/models.py:855 #: participation/models.py:1481
msgid "opponent" msgid "opponent"
msgstr "opposant⋅e" msgstr "opposant⋅e"
#: participation/admin.py:132 participation/models.py:645 #: participation/admin.py:132 participation/models.py:1271
#: participation/models.py:856 #: participation/models.py:1482
msgid "reporter" msgid "reporter"
msgstr "rapporteur⋅e" msgstr "rapporteur⋅e"
#: participation/admin.py:187 participation/models.py:806 #: participation/admin.py:187 participation/models.py:1432
msgid "problem" msgid "problem"
msgstr "numéro de problème" msgstr "numéro de problème"
@ -478,7 +478,7 @@ msgstr "numéro de problème"
msgid "This name is already used." msgid "This name is already used."
msgstr "Ce nom est déjà utilisé." msgstr "Ce nom est déjà utilisé."
#: participation/forms.py:37 participation/models.py:39 #: participation/forms.py:37 participation/models.py:43
msgid "The trigram must be composed of three uppercase letters." msgid "The trigram must be composed of three uppercase letters."
msgstr "Le trigramme doit être composé de trois lettres majuscules." msgstr "Le trigramme doit être composé de trois lettres majuscules."
@ -529,7 +529,7 @@ msgid "The PDF file must not have more than 30 pages."
msgstr "Le fichier PDF ne doit pas avoir plus de 30 pages." msgstr "Le fichier PDF ne doit pas avoir plus de 30 pages."
#: participation/forms.py:236 #: participation/forms.py:236
#: participation/templates/participation/pool_detail.html:130 #: participation/templates/participation/pool_detail.html:142
msgid "Add" msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
@ -576,32 +576,32 @@ msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème."
msgid "The PDF file must not have more than 2 pages." msgid "The PDF file must not have more than 2 pages."
msgstr "Le fichier PDF ne doit pas avoir plus de 2 pages." msgstr "Le fichier PDF ne doit pas avoir plus de 2 pages."
#: participation/models.py:32 participation/models.py:260 #: participation/models.py:36 participation/models.py:264
#: participation/tables.py:18 participation/tables.py:34 #: participation/tables.py:18 participation/tables.py:34
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: participation/models.py:38 participation/tables.py:39 #: participation/models.py:42 participation/tables.py:39
msgid "trigram" msgid "trigram"
msgstr "trigramme" msgstr "trigramme"
#: participation/models.py:44 #: participation/models.py:48
msgid "This trigram is forbidden." msgid "This trigram is forbidden."
msgstr "Ce trigramme est interdit." msgstr "Ce trigramme est interdit."
#: participation/models.py:50 #: participation/models.py:54
msgid "access code" msgid "access code"
msgstr "code d'accès" msgstr "code d'accès"
#: participation/models.py:51 #: participation/models.py:55
msgid "The access code let other people to join the team." msgid "The access code let other people to join the team."
msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe." msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
#: participation/models.py:55 #: participation/models.py:59
msgid "motivation letter" msgid "motivation letter"
msgstr "lettre de motivation" msgstr "lettre de motivation"
#: participation/models.py:96 #: participation/models.py:100
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} is not registered to any tournament. You can register the " "The team {trigram} is not registered to any tournament. You can register the "
@ -610,11 +610,11 @@ msgstr ""
"L'équipe {trigram} n'est inscrite à aucun tournoi. Vous pouvez inscrire " "L'équipe {trigram} n'est inscrite à aucun tournoi. Vous pouvez inscrire "
"l'équipe à un tournoi en cliquant sur <a href='{url}'>ce lien</a>." "l'équipe à un tournoi en cliquant sur <a href='{url}'>ce lien</a>."
#: participation/models.py:101 #: participation/models.py:105
msgid "No tournament" msgid "No tournament"
msgstr "Pas de tournoi" msgstr "Pas de tournoi"
#: participation/models.py:107 #: participation/models.py:111
msgid "" msgid ""
"Registrations for the tournament of {tournament} are ending on the {date:%Y-" "Registrations for the tournament of {tournament} are ending on the {date:%Y-"
"%m-%d %H:%M}." "%m-%d %H:%M}."
@ -622,11 +622,11 @@ msgstr ""
"Les inscriptions pour le tournoi de {tournament} se terminent le {date:%d/%m/" "Les inscriptions pour le tournoi de {tournament} se terminent le {date:%d/%m/"
"%Y %H:%M}." "%Y %H:%M}."
#: participation/models.py:112 #: participation/models.py:116
msgid "Registrations closure" msgid "Registrations closure"
msgstr "Clôture des inscriptions" msgstr "Clôture des inscriptions"
#: participation/models.py:119 #: participation/models.py:123
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has not uploaded a motivation letter. You can upload your " "The team {trigram} has not uploaded a motivation letter. You can upload your "
@ -636,11 +636,11 @@ msgstr ""
"envoyer votre lettre de motivation en cliquant sur <a href='{url}'>ce lien</" "envoyer votre lettre de motivation en cliquant sur <a href='{url}'>ce lien</"
"a>." "a>."
#: participation/models.py:124 #: participation/models.py:128
msgid "No motivation letter" msgid "No motivation letter"
msgstr "Pas de lettre de motivation" msgstr "Pas de lettre de motivation"
#: participation/models.py:133 #: participation/models.py:137
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has less than 4 students ({nb_students}). You can invite " "The team {trigram} has less than 4 students ({nb_students}). You can invite "
@ -650,11 +650,11 @@ msgstr ""
"plus d'élèves à rejoindre l'équipe en utilisant le code d'invitation " "plus d'élèves à rejoindre l'équipe en utilisant le code d'invitation "
"<strong>{code}</strong>." "<strong>{code}</strong>."
#: participation/models.py:138 #: participation/models.py:142
msgid "Not enough students" msgid "Not enough students"
msgstr "Pas assez d'élèves" msgstr "Pas assez d'élèves"
#: participation/models.py:145 #: participation/models.py:149
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has no coach. You can invite a coach to join the team " "The team {trigram} has no coach. You can invite a coach to join the team "
@ -664,11 +664,11 @@ msgstr ""
"encadrant⋅e à rejoindre l'équipe en utilisant le code d'invitation " "encadrant⋅e à rejoindre l'équipe en utilisant le code d'invitation "
"<strong>{code}</strong>." "<strong>{code}</strong>."
#: participation/models.py:149 #: participation/models.py:153
msgid "No coach" msgid "No coach"
msgstr "Pas d'encadrant⋅e" msgstr "Pas d'encadrant⋅e"
#: participation/models.py:156 #: participation/models.py:160
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has more than 6 students ({nb_students}) or more than 2 " "The team {trigram} has more than 6 students ({nb_students}) or more than 2 "
@ -679,11 +679,11 @@ msgstr ""
"encadrant⋅es ({nb_coaches}). Vous devez restreindre le nombre d'élèves et " "encadrant⋅es ({nb_coaches}). Vous devez restreindre le nombre d'élèves et "
"d'encadrant⋅es à 6 et 2, respectivement." "d'encadrant⋅es à 6 et 2, respectivement."
#: participation/models.py:161 #: participation/models.py:165
msgid "Too many members" msgid "Too many members"
msgstr "Trop de membres" msgstr "Trop de membres"
#: participation/models.py:168 #: participation/models.py:172
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} is ready to be validated. You can request validation on " "The team {trigram} is ready to be validated. You can request validation on "
@ -692,11 +692,11 @@ msgstr ""
"L'équipe {trigram} est prête à être validée. Vous pouvez demander la " "L'équipe {trigram} est prête à être validée. Vous pouvez demander la "
"validation sur <a href='{url}'>la page de votre équipe</a>." "validation sur <a href='{url}'>la page de votre équipe</a>."
#: participation/models.py:173 participation/models.py:184 #: participation/models.py:177 participation/models.py:188
msgid "Validate team" msgid "Validate team"
msgstr "Valider l'équipe" msgstr "Valider l'équipe"
#: participation/models.py:179 #: participation/models.py:183
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has enough participants, but is not ready to be " "The team {trigram} has enough participants, but is not ready to be "
@ -709,7 +709,7 @@ msgstr ""
"documents requis. Pour inviter plus de participant⋅es, utilisez le code " "documents requis. Pour inviter plus de participant⋅es, utilisez le code "
"d'invitation <strong>{code}</strong>." "d'invitation <strong>{code}</strong>."
#: participation/models.py:190 #: participation/models.py:194
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The team {trigram} has not been validated by the organizers yet. Please be " "The team {trigram} has not been validated by the organizers yet. Please be "
@ -718,103 +718,107 @@ msgstr ""
"L'équipe {trigram} n'a pas encore été validée par les organisateurices. " "L'équipe {trigram} n'a pas encore été validée par les organisateurices. "
"Merci de patienter." "Merci de patienter."
#: participation/models.py:193 registration/models.py:492 #: participation/models.py:197 registration/models.py:492
msgid "Pending validation" msgid "Pending validation"
msgstr "Validation en attente" msgstr "Validation en attente"
#: participation/models.py:246 #: participation/models.py:250
#, python-brace-format #, python-brace-format
msgid "Team {name} ({trigram})" msgid "Team {name} ({trigram})"
msgstr "Équipe {name} ({trigram})" msgstr "Équipe {name} ({trigram})"
#: participation/models.py:265 #: participation/models.py:269
msgid "start" msgid "start"
msgstr "début" msgstr "début"
#: participation/models.py:270 #: participation/models.py:274
msgid "end" msgid "end"
msgstr "fin" msgstr "fin"
#: participation/models.py:276 #: participation/models.py:280
#: participation/templates/participation/tournament_detail.html:18 #: participation/templates/participation/tournament_detail.html:18
msgid "place" msgid "place"
msgstr "lieu" msgstr "lieu"
#: participation/models.py:280 #: participation/models.py:284
msgid "max team count" msgid "max team count"
msgstr "nombre maximal d'équipes" msgstr "nombre maximal d'équipes"
#: participation/models.py:285 #: participation/models.py:289
#: participation/templates/participation/tournament_detail.html:21 #: participation/templates/participation/tournament_detail.html:21
msgid "price" msgid "price"
msgstr "prix" msgstr "prix"
#: participation/models.py:290 #: participation/models.py:294
#: participation/templates/participation/tournament_detail.html:24 #: participation/templates/participation/tournament_detail.html:24
msgid "remote" msgid "remote"
msgstr "à distance" msgstr "à distance"
#: participation/models.py:295 #: participation/models.py:299
msgid "limit date for registrations" msgid "limit date for registrations"
msgstr "date limite d'inscription" msgstr "date limite d'inscription"
#: participation/models.py:300 #: participation/models.py:304
msgid "limit date to upload solutions" msgid "limit date to upload solutions"
msgstr "date limite pour envoyer les solutions" msgstr "date limite pour envoyer les solutions"
#: participation/models.py:305 #: participation/models.py:309
msgid "random draw for solutions" msgid "random draw for solutions"
msgstr "tirage au sort des solutions" msgstr "tirage au sort des solutions"
#: participation/models.py:310 #: participation/models.py:314
msgid "limit date to upload the syntheses for the first phase" msgid "limit date to upload the syntheses for the first phase"
msgstr "date limite pour envoyer les notes de synthèses pour la première phase" msgstr "date limite pour envoyer les notes de synthèses pour la première phase"
#: participation/models.py:315 #: participation/models.py:319
msgid "date when the solutions for the second round become available" msgid "date when the solutions for the second round become available"
msgstr "date à laquelle les solutions pour le second tour sont accessibles" msgstr "date à laquelle les solutions pour le second tour sont accessibles"
#: participation/models.py:320 #: participation/models.py:324
msgid "limit date to upload the syntheses for the second phase" msgid "limit date to upload the syntheses for the second phase"
msgstr "date limite d'envoi des notes de synthèse pour la seconde phase" msgstr "date limite d'envoi des notes de synthèse pour la seconde phase"
#: participation/models.py:325 #: participation/models.py:329
#: participation/templates/participation/tournament_detail.html:48 #: participation/templates/participation/tournament_detail.html:48
msgid "description" msgid "description"
msgstr "description" msgstr "description"
#: participation/models.py:331 #: participation/models.py:335
#: participation/templates/participation/tournament_detail.html:12 #: participation/templates/participation/tournament_detail.html:12
msgid "organizers" msgid "organizers"
msgstr "organisateur⋅rices" msgstr "organisateur⋅rices"
#: participation/models.py:336 #: participation/models.py:340
#: participation/templates/participation/team_detail.html:133 #: participation/templates/participation/team_detail.html:133
msgid "final" msgid "final"
msgstr "finale" msgstr "finale"
#: participation/models.py:420 registration/admin.py:125 #: participation/models.py:348
msgid "Google Sheet ID"
msgstr "ID de la feuille Google Sheets"
#: participation/models.py:639 registration/admin.py:125
msgid "tournaments" msgid "tournaments"
msgstr "tournois" msgstr "tournois"
#: participation/models.py:449 #: participation/models.py:668
msgid "valid team" msgid "valid team"
msgstr "équipe valide" msgstr "équipe valide"
#: participation/models.py:450 #: participation/models.py:669
msgid "The participation got the validation of the organizers." msgid "The participation got the validation of the organizers."
msgstr "La participation a été validée par les organisateur⋅rices." msgstr "La participation a été validée par les organisateur⋅rices."
#: participation/models.py:456 #: participation/models.py:675
msgid "The team is selected for the final tournament." msgid "The team is selected for the final tournament."
msgstr "L'équipe est sélectionnée pour la finale." msgstr "L'équipe est sélectionnée pour la finale."
#: participation/models.py:463 #: participation/models.py:682
#, python-brace-format #, python-brace-format
msgid "Participation of the team {name} ({trigram})" msgid "Participation of the team {name} ({trigram})"
msgstr "Participation de l'équipe {name} ({trigram})" msgstr "Participation de l'équipe {name} ({trigram})"
#: participation/models.py:470 #: participation/models.py:689
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"<p>The team {trigram} has {nb_missing_payments} missing payments. Each " "<p>The team {trigram} has {nb_missing_payments} missing payments. Each "
@ -827,11 +831,11 @@ msgstr ""
"notification de bourse) pour participer au tournoi.</p><p>Les participant⋅es " "notification de bourse) pour participer au tournoi.</p><p>Les participant⋅es "
"qui n'ont pas encore payé sont : {participants}.</p>" "qui n'ont pas encore payé sont : {participants}.</p>"
#: participation/models.py:478 #: participation/models.py:697
msgid "Missing payments" msgid "Missing payments"
msgstr "Paiements manquants" msgstr "Paiements manquants"
#: participation/models.py:485 #: participation/models.py:704
msgid "" msgid ""
"<p>The solutions for the tournament of {tournament} are due on the {date:%Y-" "<p>The solutions for the tournament of {tournament} are due on the {date:%Y-"
"%m-%d %H:%M}.</p><p>You have currently sent <strong>{nb_solutions}</strong> " "%m-%d %H:%M}.</p><p>You have currently sent <strong>{nb_solutions}</strong> "
@ -846,40 +850,40 @@ msgstr ""
"pouvez envoyer vos solutions sur <a href='{url}'>votre page de " "pouvez envoyer vos solutions sur <a href='{url}'>votre page de "
"participation</a>.</p>" "participation</a>.</p>"
#: participation/models.py:494 #: participation/models.py:713
msgid "Solutions due" msgid "Solutions due"
msgstr "Rendu des solutions" msgstr "Rendu des solutions"
#: participation/models.py:504 participation/models.py:537 #: participation/models.py:723 participation/models.py:756
msgid "participations" msgid "participations"
msgstr "participations" msgstr "participations"
#: participation/models.py:519 participation/models.py:520 #: participation/models.py:738 participation/models.py:739
#, python-brace-format #, python-brace-format
msgid "Round {round}" msgid "Round {round}"
msgstr "Tour {round}" msgstr "Tour {round}"
#: participation/models.py:543 #: participation/models.py:762
msgid "juries" msgid "juries"
msgstr "jurys" msgstr "jurys"
#: participation/models.py:552 #: participation/models.py:771
msgid "president of the jury" msgid "president of the jury"
msgstr "président⋅e du jury" msgstr "président⋅e du jury"
#: participation/models.py:559 #: participation/models.py:778
msgid "BigBlueButton URL" msgid "BigBlueButton URL"
msgstr "Lien BigBlueButton" msgstr "Lien BigBlueButton"
#: participation/models.py:560 #: participation/models.py:779
msgid "The link of the BBB visio for this pool." msgid "The link of the BBB visio for this pool."
msgstr "Le lien du salon BBB pour cette poule." msgstr "Le lien du salon BBB pour cette poule."
#: participation/models.py:565 #: participation/models.py:784
msgid "results available" msgid "results available"
msgstr "résultats disponibles" msgstr "résultats disponibles"
#: participation/models.py:566 #: participation/models.py:785
msgid "" msgid ""
"Check this case when results become accessible to teams. They stay " "Check this case when results become accessible to teams. They stay "
"accessible to you. Only averages are given." "accessible to you. Only averages are given."
@ -888,32 +892,37 @@ msgstr ""
"Ils restent toujours accessibles pour vous. Seules les moyennes sont " "Ils restent toujours accessibles pour vous. Seules les moyennes sont "
"communiquées." "communiquées."
#: participation/models.py:591 #: participation/models.py:810
msgid "The president of the jury must be part of the jury." msgid "The president of the jury must be part of the jury."
msgstr "Læ président⋅e du jury doit faire partie du jury." msgstr "Læ président⋅e du jury doit faire partie du jury."
#: participation/models.py:595 #: participation/models.py:1206
#, 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:1221
#, python-brace-format #, python-brace-format
msgid "Pool of day {round} for tournament {tournament} with teams {teams}" msgid "Pool of day {round} for tournament {tournament} with teams {teams}"
msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}" msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}"
#: participation/models.py:615 #: participation/models.py:1241
msgid "position" msgid "position"
msgstr "position" msgstr "position"
#: participation/models.py:622 #: participation/models.py:1248
msgid "defended solution" msgid "defended solution"
msgstr "solution défendue" msgstr "solution défendue"
#: participation/models.py:655 #: participation/models.py:1281
msgid "observer" msgid "observer"
msgstr "observateur⋅rice" msgstr "observateur⋅rice"
#: participation/models.py:660 #: participation/models.py:1286
msgid "penalties" msgid "penalties"
msgstr "pénalités" msgstr "pénalités"
#: participation/models.py:662 #: participation/models.py:1288
msgid "" msgid ""
"Number of penalties for the defender. The defender will loose a 0.5 " "Number of penalties for the defender. The defender will loose a 0.5 "
"coefficient per penalty." "coefficient per penalty."
@ -921,124 +930,124 @@ msgstr ""
"Nombre de pénalités pour l'équipe défenseuse. Elle perd un coefficient 0.5 " "Nombre de pénalités pour l'équipe défenseuse. Elle perd un coefficient 0.5 "
"sur sa présentation orale par pénalité." "sur sa présentation orale par pénalité."
#: participation/models.py:738 participation/models.py:741 #: participation/models.py:1364 participation/models.py:1367
#: participation/models.py:744 participation/models.py:747 #: participation/models.py:1370 participation/models.py:1373
#, python-brace-format #, python-brace-format
msgid "Team {trigram} is not registered in the pool." msgid "Team {trigram} is not registered in the pool."
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule." msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
#: participation/models.py:752 #: participation/models.py:1378
#, python-brace-format #, python-brace-format
msgid "Passage of {defender} for problem {problem}" msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}" msgstr "Passage de {defender} pour le problème {problem}"
#: participation/models.py:756 participation/models.py:765 #: participation/models.py:1382 participation/models.py:1391
#: participation/models.py:850 participation/models.py:892 #: participation/models.py:1476 participation/models.py:1518
msgid "passage" msgid "passage"
msgstr "passage" msgstr "passage"
#: participation/models.py:757 #: participation/models.py:1383
msgid "passages" msgid "passages"
msgstr "passages" msgstr "passages"
#: participation/models.py:776 #: participation/models.py:1402
msgid "difference" msgid "difference"
msgstr "différence" msgstr "différence"
#: participation/models.py:777 #: participation/models.py:1403
msgid "Score to add/remove on the final score" msgid "Score to add/remove on the final score"
msgstr "Score à ajouter/retrancher au score final" msgstr "Score à ajouter/retrancher au score final"
#: participation/models.py:784 #: participation/models.py:1410
msgid "tweak" msgid "tweak"
msgstr "harmonisation" msgstr "harmonisation"
#: participation/models.py:785 #: participation/models.py:1411
msgid "tweaks" msgid "tweaks"
msgstr "harmonisations" msgstr "harmonisations"
#: participation/models.py:813 #: participation/models.py:1439
msgid "solution for the final tournament" msgid "solution for the final tournament"
msgstr "solution pour la finale" msgstr "solution pour la finale"
#: participation/models.py:818 participation/models.py:861 #: participation/models.py:1444 participation/models.py:1487
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: participation/models.py:828 #: participation/models.py:1454
#, python-brace-format #, python-brace-format
msgid "Solution of team {team} for problem {problem}" msgid "Solution of team {team} for problem {problem}"
msgstr "Solution de l'équipe {team} pour le problème {problem}" msgstr "Solution de l'équipe {team} pour le problème {problem}"
#: participation/models.py:830 #: participation/models.py:1456
msgid "for final" msgid "for final"
msgstr "pour la finale" msgstr "pour la finale"
#: participation/models.py:833 #: participation/models.py:1459
msgid "solution" msgid "solution"
msgstr "solution" msgstr "solution"
#: participation/models.py:834 #: participation/models.py:1460
msgid "solutions" msgid "solutions"
msgstr "solutions" msgstr "solutions"
#: participation/models.py:867 #: participation/models.py:1493
#, python-brace-format #, python-brace-format
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}" msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
msgstr "" msgstr ""
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème " "Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
"{problem} de {defender}" "{problem} de {defender}"
#: participation/models.py:875 #: participation/models.py:1501
msgid "synthesis" msgid "synthesis"
msgstr "note de synthèse" msgstr "note de synthèse"
#: participation/models.py:876 #: participation/models.py:1502
msgid "syntheses" msgid "syntheses"
msgstr "notes de synthèse" msgstr "notes de synthèse"
#: participation/models.py:885 #: participation/models.py:1511
msgid "jury" msgid "jury"
msgstr "jury" msgstr "jury"
#: participation/models.py:897 #: participation/models.py:1523
msgid "defender writing note" msgid "defender writing note"
msgstr "note d'écrit de la défense" msgstr "note d'écrit de la défense"
#: participation/models.py:903 #: participation/models.py:1529
msgid "defender oral note" msgid "defender oral note"
msgstr "note d'oral de la défense" msgstr "note d'oral de la défense"
#: participation/models.py:909 #: participation/models.py:1535
msgid "opponent writing note" msgid "opponent writing note"
msgstr "note d'écrit de l'opposition" msgstr "note d'écrit de l'opposition"
#: participation/models.py:915 #: participation/models.py:1541
msgid "opponent oral note" msgid "opponent oral note"
msgstr "note d'oral de l'opposition" msgstr "note d'oral de l'opposition"
#: participation/models.py:921 #: participation/models.py:1547
msgid "reporter writing note" msgid "reporter writing note"
msgstr "note d'écrit du rapportage" msgstr "note d'écrit du rapportage"
#: participation/models.py:927 #: participation/models.py:1553
msgid "reporter oral note" msgid "reporter oral note"
msgstr "note d'oral du rapportage" msgstr "note d'oral du rapportage"
#: participation/models.py:933 #: participation/models.py:1559
msgid "observer note" msgid "observer note"
msgstr "note de l'observation" msgstr "note de l'observation"
#: participation/models.py:969 #: participation/models.py:1620
#, python-brace-format #, python-brace-format
msgid "Notes of {jury} for {passage}" msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}" msgstr "Notes de {jury} pour le {passage}"
#: participation/models.py:972 #: participation/models.py:1623
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: participation/models.py:973 #: participation/models.py:1624
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
@ -1077,9 +1086,9 @@ msgstr "Pas d'équipe définie"
#: participation/templates/participation/passage_detail.html:54 #: participation/templates/participation/passage_detail.html:54
#: participation/templates/participation/passage_detail.html:153 #: participation/templates/participation/passage_detail.html:153
#: participation/templates/participation/passage_detail.html:159 #: participation/templates/participation/passage_detail.html:159
#: participation/templates/participation/pool_detail.html:117 #: participation/templates/participation/pool_detail.html:129
#: participation/templates/participation/pool_detail.html:135 #: participation/templates/participation/pool_detail.html:147
#: participation/templates/participation/pool_detail.html:140 #: participation/templates/participation/pool_detail.html:152
#: participation/templates/participation/team_detail.html:151 #: participation/templates/participation/team_detail.html:151
#: participation/templates/participation/team_detail.html:215 #: participation/templates/participation/team_detail.html:215
#: participation/templates/participation/tournament_form.html:12 #: participation/templates/participation/tournament_form.html:12
@ -1180,7 +1189,7 @@ msgstr "Envoyer une solution"
#: participation/templates/participation/participation_detail.html:65 #: participation/templates/participation/participation_detail.html:65
#: participation/templates/participation/passage_detail.html:165 #: participation/templates/participation/passage_detail.html:165
#: participation/templates/participation/pool_detail.html:145 #: participation/templates/participation/pool_detail.html:157
#: 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
#: participation/templates/participation/upload_notes.html:17 #: participation/templates/participation/upload_notes.html:17
@ -1336,47 +1345,55 @@ msgstr "Tout télécharger"
msgid "BigBlueButton link:" msgid "BigBlueButton link:"
msgstr "Lien BigBlueButton :" msgstr "Lien BigBlueButton :"
#: participation/templates/participation/pool_detail.html:71 #: participation/templates/participation/pool_detail.html:70
msgid "Notation sheet:"
msgstr "Feuille de notation :"
#: participation/templates/participation/pool_detail.html:74
msgid "Go to the Google Sheets page of the pool"
msgstr "Aller à la page Google Sheets de la poule"
#: participation/templates/participation/pool_detail.html:83
#: participation/templates/participation/tournament_detail.html:98 #: participation/templates/participation/tournament_detail.html:98
msgid "Ranking" msgid "Ranking"
msgstr "Classement" msgstr "Classement"
#: participation/templates/participation/pool_detail.html:85 #: participation/templates/participation/pool_detail.html:97
msgid "Download the scale sheet" msgid "Download the scale sheet"
msgstr "Télécharger la feuille de barème" msgstr "Télécharger la feuille de barème"
#: participation/templates/participation/pool_detail.html:94 #: participation/templates/participation/pool_detail.html:106
msgid "Download the final notation sheet" msgid "Download the final notation sheet"
msgstr "Télécharger la fiche de notation finale" msgstr "Télécharger la fiche de notation finale"
#: participation/templates/participation/pool_detail.html:103 #: participation/templates/participation/pool_detail.html:115
msgid "Download all notation sheets" msgid "Download all notation sheets"
msgstr "Télécharger toutes les fiches de notation" msgstr "Télécharger toutes les fiches de notation"
#: participation/templates/participation/pool_detail.html:108 #: participation/templates/participation/pool_detail.html:120
msgid "Upload notes from a CSV file" msgid "Upload notes from a CSV file"
msgstr "Soumettre les notes à partir d'un fichier CSV" msgstr "Soumettre les notes à partir d'un fichier CSV"
#: participation/templates/participation/pool_detail.html:116 #: participation/templates/participation/pool_detail.html:128
#: participation/templates/participation/pool_detail.html:129 #: participation/templates/participation/pool_detail.html:141
msgid "Add passage" msgid "Add passage"
msgstr "Ajouter un passage" msgstr "Ajouter un passage"
#: participation/templates/participation/pool_detail.html:118 #: participation/templates/participation/pool_detail.html:130
#: participation/templates/participation/pool_detail.html:139 #: participation/templates/participation/pool_detail.html:151
msgid "Update teams" msgid "Update teams"
msgstr "Modifier les équipes" msgstr "Modifier les équipes"
#: participation/templates/participation/pool_detail.html:125 #: participation/templates/participation/pool_detail.html:137
msgid "Passages" msgid "Passages"
msgstr "Passages" msgstr "Passages"
#: participation/templates/participation/pool_detail.html:134 #: participation/templates/participation/pool_detail.html:146
#: participation/templates/participation/pool_form.html:11 #: participation/templates/participation/pool_form.html:11
msgid "Update pool" msgid "Update pool"
msgstr "Modifier la poule" msgstr "Modifier la poule"
#: participation/templates/participation/pool_detail.html:144 #: participation/templates/participation/pool_detail.html:156
msgid "Upload notes" msgid "Upload notes"
msgstr "Envoyer les notes" msgstr "Envoyer les notes"
@ -1870,35 +1887,35 @@ msgstr "Nouveau compte de juré⋅e pour le TFJM²"
msgid "The jury {name} has been successfully added!" msgid "The jury {name} has been successfully added!"
msgstr "{name} a été ajouté⋅e avec succès en tant que juré⋅e !" msgstr "{name} a été ajouté⋅e avec succès en tant que juré⋅e !"
#: participation/views.py:1038 #: participation/views.py:1039
#, python-brace-format #, python-brace-format
msgid "The jury {name} has been successfully removed!" msgid "The jury {name} has been successfully removed!"
msgstr "{name} a été retiré⋅e avec succès du jury !" msgstr "{name} a été retiré⋅e avec succès du jury !"
#: participation/views.py:1064 #: participation/views.py:1065
#, python-brace-format #, python-brace-format
msgid "The jury {name} has been successfully promoted president!" msgid "The jury {name} has been successfully promoted president!"
msgstr "{name} a été nommé⋅e président⋅e du jury !" msgstr "{name} a été nommé⋅e président⋅e du jury !"
#: participation/views.py:1092 #: participation/views.py:1093
msgid "The following user is not registered as a jury:" msgid "The following user is not registered as a jury:"
msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :" msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :"
#: participation/views.py:1106 #: participation/views.py:1107
msgid "Notes were successfully uploaded." msgid "Notes were successfully uploaded."
msgstr "Les notes ont bien été envoyées." msgstr "Les notes ont bien été envoyées."
#: participation/views.py:1739 #: participation/views.py:1740
#, python-brace-format #, python-brace-format
msgid "Notation sheets of pool {pool} of {tournament}.zip" msgid "Notation sheets of pool {pool} of {tournament}.zip"
msgstr "Feuilles de notations pour la poule {pool} du tournoi {tournament}.zip" msgstr "Feuilles de notations pour la poule {pool} du tournoi {tournament}.zip"
#: participation/views.py:1744 #: participation/views.py:1745
#, python-brace-format #, python-brace-format
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:1922 #: participation/views.py:1924
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

@ -481,7 +481,7 @@ class Tournament(models.Model):
format_requests = [] format_requests = []
# Set the width of the columns # Set the width of the columns
column_widths = [("A", 250), ("B", 120), ("C", 120), ("D", 120), ("E", 120), ("F", 120), ("G", 120)] column_widths = [("A", 300), ("B", 120), ("C", 120), ("D", 120), ("E", 120), ("F", 120), ("G", 120)]
for column, width in column_widths: for column, width in column_widths:
grid_range = a1_range_to_grid_range(column, worksheet.id) grid_range = a1_range_to_grid_range(column, worksheet.id)
format_requests.append({ format_requests.append({
@ -1013,7 +1013,7 @@ class Pool(models.Model):
}) })
# Set the width of the columns # Set the width of the columns
column_widths = [("A", 250), ("B", 30)] column_widths = [("A", 300), ("B", 30)]
for passage in passages: for passage in passages:
column_widths.append((f"{getcol(3 + passage_width * (passage.position - 1))}" column_widths.append((f"{getcol(3 + passage_width * (passage.position - 1))}"
f":{getcol(8 + passage_width * (passage.position - 1))}", 75)) f":{getcol(8 + passage_width * (passage.position - 1))}", 75))

View File

@ -64,6 +64,18 @@
<dt class="col-sm-3">{% trans "BigBlueButton link:" %}</dt> <dt class="col-sm-3">{% trans "BigBlueButton link:" %}</dt>
<dd class="col-sm-9">{{ pool.bbb_url|urlize }}</dd> <dd class="col-sm-9">{{ pool.bbb_url|urlize }}</dd>
{% if user.registration.is_admin or user.registration.is_volunteer %}
{% if user.registration.is_admin or user.registration in pool.tournament.organizers.all or user.registration == pool.jury_president %}
<dt class="col-sm-3">{% trans "Notation sheet:" %}</dt>
<dd class="col-sm-9">
<a class="btn btn-success" href="https://docs.google.com/spreadsheets/d/{{ pool.tournament.notes_sheet_id }}/edit">
<i class="fas fa-table"></i>
{% trans "Go to the Google Sheets page of the pool" %}
</a>
</dd>
{% endif %}
{% endif %}
</dl> </dl>
<div class="card bg-body shadow"> <div class="card bg-body shadow">

View File

@ -194,6 +194,12 @@
Archive de toutes les notes de synthèse triées par poule et par passage Archive de toutes les notes de synthèse triées par poule et par passage
</a> </a>
</li> </li>
<li>
<a href="https://docs.google.com/spreadsheets/d/{{ tournament.notes_sheet_id }}/edit">
<i class="fas fa-table"></i>
Tableur de notes sur Google Sheets
</a>
</li>
<li> <li>
<a href="{% url "participation:tournament_notation_sheets" tournament_id=tournament.id %}"> <a href="{% url "participation:tournament_notation_sheets" tournament_id=tournament.id %}">
Archive de toutes les feuilles de notes à imprimer triées par poule Archive de toutes les feuilles de notes à imprimer triées par poule