1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-02-24 17:01:20 +00:00

Compare commits

..

No commits in common. "6595409df0f19d0a23604bbf07db787a10c3b91d" and "5261a524017a5ca79746f464d1b31d413ab5fd19" have entirely different histories.

5 changed files with 157 additions and 238 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-30 19:13+0100\n" "POT-Creation-Date: 2024-03-29 19:18+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n" "Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -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:254 #: participation/admin.py:109 participation/models.py:250
#: 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:638 #: participation/admin.py:171 participation/models.py:419
#: participation/models.py:662 participation/models.py:732 #: participation/models.py:443 participation/models.py:513
#: 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:736 #: participation/models.py:517
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:750 #: draw/models.py:255 participation/models.py:531
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:1227 #: participation/admin.py:155 participation/models.py:601
#: participation/models.py:1236 participation/tables.py:84 #: participation/models.py:610 participation/tables.py:84
msgid "pool" msgid "pool"
msgstr "poule" msgstr "poule"
#: draw/models.py:409 participation/models.py:1228 #: draw/models.py:409 participation/models.py:602
msgid "pools" msgid "pools"
msgstr "poules" msgstr "poules"
#: draw/models.py:421 participation/models.py:722 participation/models.py:1397 #: draw/models.py:421 participation/models.py:503 participation/models.py:771
#: participation/models.py:1427 participation/models.py:1469 #: participation/models.py:801 participation/models.py:843
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:1250 #: draw/models.py:458 draw/models.py:481 participation/models.py:624
#: participation/models.py:1434 #: participation/models.py:808
#, 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:253 participation/models.py:653 #: participation/models.py:249 participation/models.py:434
#: 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:97 #: participation/templates/participation/pool_detail.html:85
#: participation/templates/participation/pool_detail.html:101 #: participation/templates/participation/pool_detail.html:89
#: participation/templates/participation/pool_detail.html:106 #: participation/templates/participation/pool_detail.html:94
#: participation/templates/participation/pool_detail.html:110 #: participation/templates/participation/pool_detail.html:98
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:674 #: participation/admin.py:87 participation/models.py:455
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:1257 participation/tables.py:112 #: participation/models.py:631 participation/tables.py:112
msgid "defender" msgid "defender"
msgstr "défenseur⋅se" msgstr "défenseur⋅se"
#: participation/admin.py:128 participation/models.py:1264 #: participation/admin.py:128 participation/models.py:638
#: participation/models.py:1481 #: participation/models.py:855
msgid "opponent" msgid "opponent"
msgstr "opposant⋅e" msgstr "opposant⋅e"
#: participation/admin.py:132 participation/models.py:1271 #: participation/admin.py:132 participation/models.py:645
#: participation/models.py:1482 #: participation/models.py:856
msgid "reporter" msgid "reporter"
msgstr "rapporteur⋅e" msgstr "rapporteur⋅e"
#: participation/admin.py:187 participation/models.py:1432 #: participation/admin.py:187 participation/models.py:806
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:43 #: participation/forms.py:37 participation/models.py:39
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:142 #: participation/templates/participation/pool_detail.html:130
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:36 participation/models.py:264 #: participation/models.py:32 participation/models.py:260
#: 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:42 participation/tables.py:39 #: participation/models.py:38 participation/tables.py:39
msgid "trigram" msgid "trigram"
msgstr "trigramme" msgstr "trigramme"
#: participation/models.py:48 #: participation/models.py:44
msgid "This trigram is forbidden." msgid "This trigram is forbidden."
msgstr "Ce trigramme est interdit." msgstr "Ce trigramme est interdit."
#: participation/models.py:54 #: participation/models.py:50
msgid "access code" msgid "access code"
msgstr "code d'accès" msgstr "code d'accès"
#: participation/models.py:55 #: participation/models.py:51
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:59 #: participation/models.py:55
msgid "motivation letter" msgid "motivation letter"
msgstr "lettre de motivation" msgstr "lettre de motivation"
#: participation/models.py:100 #: participation/models.py:96
#, 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:105 #: participation/models.py:101
msgid "No tournament" msgid "No tournament"
msgstr "Pas de tournoi" msgstr "Pas de tournoi"
#: participation/models.py:111 #: participation/models.py:107
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:116 #: participation/models.py:112
msgid "Registrations closure" msgid "Registrations closure"
msgstr "Clôture des inscriptions" msgstr "Clôture des inscriptions"
#: participation/models.py:123 #: participation/models.py:119
#, 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:128 #: participation/models.py:124
msgid "No motivation letter" msgid "No motivation letter"
msgstr "Pas de lettre de motivation" msgstr "Pas de lettre de motivation"
#: participation/models.py:137 #: participation/models.py:133
#, 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:142 #: participation/models.py:138
msgid "Not enough students" msgid "Not enough students"
msgstr "Pas assez d'élèves" msgstr "Pas assez d'élèves"
#: participation/models.py:149 #: participation/models.py:145
#, 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:153 #: participation/models.py:149
msgid "No coach" msgid "No coach"
msgstr "Pas d'encadrant⋅e" msgstr "Pas d'encadrant⋅e"
#: participation/models.py:160 #: participation/models.py:156
#, 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:165 #: participation/models.py:161
msgid "Too many members" msgid "Too many members"
msgstr "Trop de membres" msgstr "Trop de membres"
#: participation/models.py:172 #: participation/models.py:168
#, 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:177 participation/models.py:188 #: participation/models.py:173 participation/models.py:184
msgid "Validate team" msgid "Validate team"
msgstr "Valider l'équipe" msgstr "Valider l'équipe"
#: participation/models.py:183 #: participation/models.py:179
#, 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:194 #: participation/models.py:190
#, 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,107 +718,103 @@ 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:197 registration/models.py:492 #: participation/models.py:193 registration/models.py:492
msgid "Pending validation" msgid "Pending validation"
msgstr "Validation en attente" msgstr "Validation en attente"
#: participation/models.py:250 #: participation/models.py:246
#, 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:269 #: participation/models.py:265
msgid "start" msgid "start"
msgstr "début" msgstr "début"
#: participation/models.py:274 #: participation/models.py:270
msgid "end" msgid "end"
msgstr "fin" msgstr "fin"
#: participation/models.py:280 #: participation/models.py:276
#: 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:284 #: participation/models.py:280
msgid "max team count" msgid "max team count"
msgstr "nombre maximal d'équipes" msgstr "nombre maximal d'équipes"
#: participation/models.py:289 #: participation/models.py:285
#: 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:294 #: participation/models.py:290
#: 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:299 #: participation/models.py:295
msgid "limit date for registrations" msgid "limit date for registrations"
msgstr "date limite d'inscription" msgstr "date limite d'inscription"
#: participation/models.py:304 #: participation/models.py:300
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:309 #: participation/models.py:305
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:314 #: participation/models.py:310
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:319 #: participation/models.py:315
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:324 #: participation/models.py:320
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:329 #: participation/models.py:325
#: 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:335 #: participation/models.py:331
#: 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:340 #: participation/models.py:336
#: 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:348 #: participation/models.py:420 registration/admin.py:125
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:668 #: participation/models.py:449
msgid "valid team" msgid "valid team"
msgstr "équipe valide" msgstr "équipe valide"
#: participation/models.py:669 #: participation/models.py:450
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:675 #: participation/models.py:456
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:682 #: participation/models.py:463
#, 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:689 #: participation/models.py:470
#, 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 "
@ -831,11 +827,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:697 #: participation/models.py:478
msgid "Missing payments" msgid "Missing payments"
msgstr "Paiements manquants" msgstr "Paiements manquants"
#: participation/models.py:704 #: participation/models.py:485
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> "
@ -850,40 +846,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:713 #: participation/models.py:494
msgid "Solutions due" msgid "Solutions due"
msgstr "Rendu des solutions" msgstr "Rendu des solutions"
#: participation/models.py:723 participation/models.py:756 #: participation/models.py:504 participation/models.py:537
msgid "participations" msgid "participations"
msgstr "participations" msgstr "participations"
#: participation/models.py:738 participation/models.py:739 #: participation/models.py:519 participation/models.py:520
#, python-brace-format #, python-brace-format
msgid "Round {round}" msgid "Round {round}"
msgstr "Tour {round}" msgstr "Tour {round}"
#: participation/models.py:762 #: participation/models.py:543
msgid "juries" msgid "juries"
msgstr "jurys" msgstr "jurys"
#: participation/models.py:771 #: participation/models.py:552
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:778 #: participation/models.py:559
msgid "BigBlueButton URL" msgid "BigBlueButton URL"
msgstr "Lien BigBlueButton" msgstr "Lien BigBlueButton"
#: participation/models.py:779 #: participation/models.py:560
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:784 #: participation/models.py:565
msgid "results available" msgid "results available"
msgstr "résultats disponibles" msgstr "résultats disponibles"
#: participation/models.py:785 #: participation/models.py:566
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."
@ -892,37 +888,32 @@ 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:810 #: participation/models.py:591
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:1206 #: participation/models.py:595
#, 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:1241 #: participation/models.py:615
msgid "position" msgid "position"
msgstr "position" msgstr "position"
#: participation/models.py:1248 #: participation/models.py:622
msgid "defended solution" msgid "defended solution"
msgstr "solution défendue" msgstr "solution défendue"
#: participation/models.py:1281 #: participation/models.py:655
msgid "observer" msgid "observer"
msgstr "observateur⋅rice" msgstr "observateur⋅rice"
#: participation/models.py:1286 #: participation/models.py:660
msgid "penalties" msgid "penalties"
msgstr "pénalités" msgstr "pénalités"
#: participation/models.py:1288 #: participation/models.py:662
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."
@ -930,124 +921,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:1364 participation/models.py:1367 #: participation/models.py:738 participation/models.py:741
#: participation/models.py:1370 participation/models.py:1373 #: participation/models.py:744 participation/models.py:747
#, 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:1378 #: participation/models.py:752
#, 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:1382 participation/models.py:1391 #: participation/models.py:756 participation/models.py:765
#: participation/models.py:1476 participation/models.py:1518 #: participation/models.py:850 participation/models.py:892
msgid "passage" msgid "passage"
msgstr "passage" msgstr "passage"
#: participation/models.py:1383 #: participation/models.py:757
msgid "passages" msgid "passages"
msgstr "passages" msgstr "passages"
#: participation/models.py:1402 #: participation/models.py:776
msgid "difference" msgid "difference"
msgstr "différence" msgstr "différence"
#: participation/models.py:1403 #: participation/models.py:777
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:1410 #: participation/models.py:784
msgid "tweak" msgid "tweak"
msgstr "harmonisation" msgstr "harmonisation"
#: participation/models.py:1411 #: participation/models.py:785
msgid "tweaks" msgid "tweaks"
msgstr "harmonisations" msgstr "harmonisations"
#: participation/models.py:1439 #: participation/models.py:813
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:1444 participation/models.py:1487 #: participation/models.py:818 participation/models.py:861
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: participation/models.py:1454 #: participation/models.py:828
#, 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:1456 #: participation/models.py:830
msgid "for final" msgid "for final"
msgstr "pour la finale" msgstr "pour la finale"
#: participation/models.py:1459 #: participation/models.py:833
msgid "solution" msgid "solution"
msgstr "solution" msgstr "solution"
#: participation/models.py:1460 #: participation/models.py:834
msgid "solutions" msgid "solutions"
msgstr "solutions" msgstr "solutions"
#: participation/models.py:1493 #: participation/models.py:867
#, 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:1501 #: participation/models.py:875
msgid "synthesis" msgid "synthesis"
msgstr "note de synthèse" msgstr "note de synthèse"
#: participation/models.py:1502 #: participation/models.py:876
msgid "syntheses" msgid "syntheses"
msgstr "notes de synthèse" msgstr "notes de synthèse"
#: participation/models.py:1511 #: participation/models.py:885
msgid "jury" msgid "jury"
msgstr "jury" msgstr "jury"
#: participation/models.py:1523 #: participation/models.py:897
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:1529 #: participation/models.py:903
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:1535 #: participation/models.py:909
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:1541 #: participation/models.py:915
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:1547 #: participation/models.py:921
msgid "reporter writing note" msgid "reporter writing note"
msgstr "note d'écrit du rapportage" msgstr "note d'écrit du rapportage"
#: participation/models.py:1553 #: participation/models.py:927
msgid "reporter oral note" msgid "reporter oral note"
msgstr "note d'oral du rapportage" msgstr "note d'oral du rapportage"
#: participation/models.py:1559 #: participation/models.py:933
msgid "observer note" msgid "observer note"
msgstr "note de l'observation" msgstr "note de l'observation"
#: participation/models.py:1620 #: participation/models.py:969
#, 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:1623 #: participation/models.py:972
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: participation/models.py:1624 #: participation/models.py:973
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
@ -1086,9 +1077,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:129 #: participation/templates/participation/pool_detail.html:117
#: participation/templates/participation/pool_detail.html:147 #: participation/templates/participation/pool_detail.html:135
#: participation/templates/participation/pool_detail.html:152 #: participation/templates/participation/pool_detail.html:140
#: 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
@ -1189,7 +1180,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:157 #: participation/templates/participation/pool_detail.html:145
#: participation/templates/participation/team_detail.html:210 #: participation/templates/participation/team_detail.html:210
#: participation/templates/participation/upload_motivation_letter.html:13 #: participation/templates/participation/upload_motivation_letter.html:13
#: participation/templates/participation/upload_notes.html:17 #: participation/templates/participation/upload_notes.html:17
@ -1345,55 +1336,47 @@ msgstr "Tout télécharger"
msgid "BigBlueButton link:" msgid "BigBlueButton link:"
msgstr "Lien BigBlueButton :" msgstr "Lien BigBlueButton :"
#: participation/templates/participation/pool_detail.html:70 #: participation/templates/participation/pool_detail.html:71
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:97 #: participation/templates/participation/pool_detail.html:85
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:106 #: participation/templates/participation/pool_detail.html:94
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:115 #: participation/templates/participation/pool_detail.html:103
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:120 #: participation/templates/participation/pool_detail.html:108
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:128 #: participation/templates/participation/pool_detail.html:116
#: participation/templates/participation/pool_detail.html:141 #: participation/templates/participation/pool_detail.html:129
msgid "Add passage" msgid "Add passage"
msgstr "Ajouter un passage" msgstr "Ajouter un passage"
#: participation/templates/participation/pool_detail.html:130 #: participation/templates/participation/pool_detail.html:118
#: participation/templates/participation/pool_detail.html:151 #: participation/templates/participation/pool_detail.html:139
msgid "Update teams" msgid "Update teams"
msgstr "Modifier les équipes" msgstr "Modifier les équipes"
#: participation/templates/participation/pool_detail.html:137 #: participation/templates/participation/pool_detail.html:125
msgid "Passages" msgid "Passages"
msgstr "Passages" msgstr "Passages"
#: participation/templates/participation/pool_detail.html:146 #: participation/templates/participation/pool_detail.html:134
#: 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:156 #: participation/templates/participation/pool_detail.html:144
msgid "Upload notes" msgid "Upload notes"
msgstr "Envoyer les notes" msgstr "Envoyer les notes"
@ -1887,35 +1870,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:1039 #: participation/views.py:1038
#, 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:1065 #: participation/views.py:1064
#, 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:1093 #: participation/views.py:1092
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:1107 #: participation/views.py:1106
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:1740 #: participation/views.py:1739
#, 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:1745 #: participation/views.py:1744
#, 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:1924 #: participation/views.py:1922
msgid "You can't upload a synthesis after the deadline." msgid "You can't upload a synthesis after the deadline."
msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite." msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."

View File

@ -36,6 +36,4 @@ class Command(BaseCommand):
self.stdout.write(f"Parsing notation sheet for pool {pool.short_name} for {tournament}") self.stdout.write(f"Parsing notation sheet for pool {pool.short_name} for {tournament}")
pool.parse_spreadsheet() pool.parse_spreadsheet()
tournament.parse_tweaks_spreadskeets()
sleep(1) sleep(1)

View File

@ -439,10 +439,10 @@ class Tournament(models.Model):
else: else:
worksheet = spreadsheet.worksheet("Classement final") worksheet = spreadsheet.worksheet("Classement final")
if worksheet.index != self.pools.count(): if worksheet.index < 100:
worksheet.update_index(self.pools.count()) worksheet.update_index(self.pools.count() + 1)
header = [["Équipe", "Score jour 1", "Harmonisation 1", "Score jour 2", "Harmonisation 2", "Total", "Rang"]] header = [["Équipe", "Points jour 1", "Points jour 2", "Total", "Harmonisation", "Total final", "Rang"]]
lines = [] lines = []
participations = self.participations.filter(pools__round=1, pools__tournament=self).all() participations = self.participations.filter(pools__round=1, pools__tournament=self).all()
for i, participation in enumerate(participations): for i, participation in enumerate(participations):
@ -451,19 +451,13 @@ class Tournament(models.Model):
pool1 = self.pools.get(round=1, participations=participation) pool1 = self.pools.get(round=1, participations=participation)
passage1 = pool1.passages.get(defender=participation) passage1 = pool1.passages.get(defender=participation)
tweak1_qs = Tweak.objects.filter(pool=pool1, participation=participation)
tweak1 = tweak1_qs.get() if tweak1_qs.exists() else None
pool2 = self.pools.get(round=2, participations=participation) pool2 = self.pools.get(round=2, participations=participation)
passage2 = pool2.passages.get(defender=participation) passage2 = pool2.passages.get(defender=participation)
tweak2_qs = Tweak.objects.filter(pool=pool2, participation=participation)
tweak2 = tweak2_qs.get() if tweak2_qs.exists() else None
line.append(f"=SIERREUR('Poule {pool1.short_name}'!$D{pool1.juries.count() + 10 + passage1.position}; 0)") line.append(f"=SIERREUR('Poule {pool1.short_name}'!$D{pool1.juries.count() + 10 + passage1.position}; 0)")
line.append(tweak1.diff if tweak1 else 0)
line.append(f"=SIERREUR('Poule {pool2.short_name}'!$D{pool2.juries.count() + 10 + passage2.position}; 0)") line.append(f"=SIERREUR('Poule {pool2.short_name}'!$D{pool2.juries.count() + 10 + passage2.position}; 0)")
line.append(tweak2.diff if tweak2 else 0) line.append(f"=$B{i + 2} + $C{i + 2}")
line.append(f"=$B{i + 2} + $C{i + 2} + $D{i + 2} + E{i + 2}") line.append(0)
line.append(f"=$D{i + 2} + $E{i + 2}")
line.append(f"=RANG($F{i + 2}; $F$2:$F${participations.count() + 1})") line.append(f"=RANG($F{i + 2}; $F$2:$F${participations.count() + 1})")
final_ranking = [["", "", ""], ["", "", ""], ["Équipe", "Score", "Rang"], final_ranking = [["", "", ""], ["", "", ""], ["Équipe", "Score", "Rang"],
@ -481,7 +475,7 @@ class Tournament(models.Model):
format_requests = [] format_requests = []
# Set the width of the columns # Set the width of the columns
column_widths = [("A", 300), ("B", 120), ("C", 120), ("D", 120), ("E", 120), ("F", 120), ("G", 120)] column_widths = [("A", 250), ("B", 100), ("C", 100), ("D", 100), ("E", 100), ("F", 100), ("G", 100)]
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({
@ -537,9 +531,7 @@ class Tournament(models.Model):
# Set background color for headers and footers # Set background color for headers and footers
bg_colors = [("A1:AF", (1, 1, 1)), bg_colors = [("A1:AF", (1, 1, 1)),
(f"A1:G1", (0.8, 0.8, 0.8)), (f"A1:G1", (0.8, 0.8, 0.8)),
(f"A2:B{participations.count() + 1}", (0.9, 0.9, 0.9)), (f"A2:D{participations.count() + 1}", (0.9, 0.9, 0.9)),
(f"C2:C{participations.count() + 1}", (1, 1, 1)),
(f"D2:D{participations.count() + 1}", (0.9, 0.9, 0.9)),
(f"E2:E{participations.count() + 1}", (1, 1, 1)), (f"E2:E{participations.count() + 1}", (1, 1, 1)),
(f"F2:G{participations.count() + 1}", (0.9, 0.9, 0.9)), (f"F2:G{participations.count() + 1}", (0.9, 0.9, 0.9)),
(f"A{participations.count() + 4}:C{participations.count() + 4}", (0.8, 0.8, 0.8)), (f"A{participations.count() + 4}:C{participations.count() + 4}", (0.8, 0.8, 0.8)),
@ -555,19 +547,13 @@ class Tournament(models.Model):
}) })
# Set number format, display only one decimal # Set number format, display only one decimal
number_format_ranges = [(f"B2:B{participations.count() + 1}", "0.0"), number_format_ranges = [f"B2:D{participations.count() + 1}", f"F2:F{participations.count() + 1}",
(f"C2:C{participations.count() + 1}", "0"), f"B{participations.count() + 5}:B{2 * participations.count() + 5}", ]
(f"D2:D{participations.count() + 1}", "0.0"), for number_format_range in number_format_ranges:
(f"E2:E{participations.count() + 1}", "0"),
(f"F2:F{participations.count() + 1}", "0.0"),
(f"G2:G{participations.count() + 1}", "0"),
(f"B{participations.count() + 5}:B{2 * participations.count() + 5}", "0.0"),
(f"C{participations.count() + 5}:C{2 * participations.count() + 5}", "0"), ]
for number_format_range, pattern in number_format_ranges:
format_requests.append({ format_requests.append({
"repeatCell": { "repeatCell": {
"range": a1_range_to_grid_range(number_format_range, worksheet.id), "range": a1_range_to_grid_range(number_format_range, worksheet.id),
"cell": {"userEnteredFormat": {"numberFormat": {"type": "NUMBER", "pattern": pattern}}}, "cell": {"userEnteredFormat": {"numberFormat": {"type": "NUMBER", "pattern": "0.0"}}},
"fields": "userEnteredFormat.numberFormat", "fields": "userEnteredFormat.numberFormat",
} }
}) })
@ -581,8 +567,7 @@ class Tournament(models.Model):
}) })
# Protect the header, the juries list, the footer and the ranking # Protect the header, the juries list, the footer and the ranking
protected_ranges = [f"A1:G1", f"A2:B{participations.count() + 1}", protected_ranges = [f"A1:G1", f"A2:D{participations.count() + 1}", f"F2:G{participations.count() + 1}",
f"D2:D{participations.count() + 1}", f"F2:G{participations.count() + 1}",
f"A{participations.count() + 4}:C{2 * participations.count() + 4}", ] f"A{participations.count() + 4}:C{2 * participations.count() + 4}", ]
for protected_range in protected_ranges: for protected_range in protected_ranges:
format_requests.append({ format_requests.append({
@ -599,35 +584,6 @@ class Tournament(models.Model):
body = {"requests": format_requests} body = {"requests": format_requests}
worksheet.client.batch_update(spreadsheet.id, body) worksheet.client.batch_update(spreadsheet.id, body)
def parse_tweaks_spreadskeets(self):
gc = gspread.service_account_from_dict(settings.GOOGLE_SERVICE_CLIENT)
spreadsheet = gc.open_by_key(self.notes_sheet_id)
worksheet = spreadsheet.worksheet("Classement final")
score_cell = worksheet.find("Score")
max_row = score_cell.row - 3
data = worksheet.get_values(f"A2:E{max_row}")
for line in data:
trigram = line[0][-4:-1]
participation = self.participations.get(team__trigram=trigram)
pool1 = self.pools.get(round=1, participations=participation)
pool2 = self.pools.get(round=2, participations=participation)
tweak1_qs = Tweak.objects.filter(pool=pool1, participation=participation)
tweak2_qs = Tweak.objects.filter(pool=pool2, participation=participation)
tweak1_nb, tweak2_nb = int(line[2]), int(line[4])
if not tweak1_nb:
tweak1_qs.delete()
else:
tweak1_qs.update_or_create(defaults={'diff': tweak1_nb},
create_defaults={'diff': tweak1_nb, 'pool': pool1,
'participation': participation})
if not tweak2_nb:
tweak2_qs.delete()
else:
tweak2_qs.update_or_create(defaults={'diff': tweak2_nb},
create_defaults={'diff': tweak2_nb, 'pool': pool2,
'participation': participation})
def get_absolute_url(self): def get_absolute_url(self):
return reverse_lazy("participation:tournament_detail", args=(self.pk,)) return reverse_lazy("participation:tournament_detail", args=(self.pk,))
@ -1013,7 +969,7 @@ class Pool(models.Model):
}) })
# Set the width of the columns # Set the width of the columns
column_widths = [("A", 300), ("B", 30)] column_widths = [("A", 250), ("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,18 +64,6 @@
<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,12 +194,6 @@
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