mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 15:40:01 +01:00 
			
		
		
		
	Add confirmation modal before aborting a draw
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
		| @@ -54,12 +54,6 @@ | ||||
|                 <div class="card"> | ||||
|                     <div class="card-header"> | ||||
|                         Recap | ||||
|                         {% if user.registration.is_volunteer %} | ||||
|                             {# Volunteers can click on this button to abort the draw #} | ||||
|                             <button id="abort-{{ tournament.id }}" class="badge rounded-pill text-bg-danger" onclick="abortDraw({{ tournament.id }})"> | ||||
|                                 {% trans "Abort" %} | ||||
|                             </button> | ||||
|                         {% endif %} | ||||
|                     </div> | ||||
|                     <div class="card-body"> | ||||
|                         <div id="recap-{{ tournament.id }}-round-list" class="row"> | ||||
| @@ -327,3 +321,32 @@ | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
| {% if user.registration.is_volunteer %} | ||||
|     {# Volunteers can click on this button to abort the draw #} | ||||
|     <div class="text-center mt-3"> | ||||
|         <button id="abort-{{ tournament.id }}" class="badge rounded-pill text-bg-danger" data-bs-toggle="modal" data-bs-target="#abort{{ tournament.id }}Modal"> | ||||
|             {% trans "Abort" %} | ||||
|         </button> | ||||
|     </div> | ||||
| {% endif %} | ||||
|  | ||||
| <div id="abort{{ tournament.id }}Modal" class="modal fade" tabindex="-1" role="dialog"> | ||||
|     <div class="modal-dialog" role="document"> | ||||
|         <div class="modal-content"> | ||||
|             <div class="modal-header"> | ||||
|                 <h5 class="modal-title">{% trans "Are you sure?" %}</h5> | ||||
|                 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> | ||||
|             </div> | ||||
|             <div class="modal-body"> | ||||
|                 {% trans "This will reset the draw from the beginning." %} | ||||
|                 {% trans "This operation is irreversible." %} | ||||
|                 {% trans "Are you sure you want to abort this draw?" %} | ||||
|             </div> | ||||
|             <div class="modal-footer"> | ||||
|                 <button type="submit" class="btn btn-danger" onclick="abortDraw({{ tournament.id }})">{% trans "Abort" %}</button> | ||||
|                 <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans "Close" %}</button> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: TFJM\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2023-04-05 16:46+0200\n" | ||||
| "POT-Creation-Date: 2023-04-05 18:37+0200\n" | ||||
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||||
| "Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n" | ||||
| "Language-Team: LANGUAGE <LL@li.org>\n" | ||||
| @@ -26,15 +26,15 @@ msgstr "API" | ||||
| msgid "teams" | ||||
| msgstr "équipes" | ||||
|  | ||||
| #: draw/admin.py:40 draw/admin.py:56 draw/models.py:25 | ||||
| #: draw/admin.py:40 draw/admin.py:56 draw/models.py:24 | ||||
| #: participation/admin.py:16 participation/admin.py:73 | ||||
| #: participation/admin.py:104 participation/models.py:296 | ||||
| #: participation/models.py:320 participation/models.py:352 | ||||
| #: participation/admin.py:104 participation/models.py:295 | ||||
| #: participation/models.py:319 participation/models.py:351 | ||||
| msgid "tournament" | ||||
| msgstr "tournoi" | ||||
|  | ||||
| #: draw/admin.py:60 draw/models.py:229 draw/models.py:415 | ||||
| #: participation/models.py:356 | ||||
| #: draw/admin.py:60 draw/models.py:228 draw/models.py:414 | ||||
| #: participation/models.py:355 | ||||
| msgid "round" | ||||
| msgstr "tour" | ||||
|  | ||||
| @@ -42,237 +42,237 @@ msgstr "tour" | ||||
| msgid "Draw" | ||||
| msgstr "Tirage au sort" | ||||
|  | ||||
| #: draw/consumers.py:26 | ||||
| #: draw/consumers.py:25 | ||||
| msgid "You are not an organizer." | ||||
| msgstr "Vous n'êtes pas un⋅e organisateur⋅rice." | ||||
|  | ||||
| #: draw/consumers.py:146 | ||||
| #: draw/consumers.py:145 | ||||
| msgid "The draw is already started." | ||||
| msgstr "Le tirage a déjà commencé." | ||||
|  | ||||
| #: draw/consumers.py:152 | ||||
| #: draw/consumers.py:151 | ||||
| msgid "Invalid format" | ||||
| msgstr "Format invalide" | ||||
|  | ||||
| #: draw/consumers.py:157 | ||||
| #: draw/consumers.py:156 | ||||
| #, python-brace-format | ||||
| msgid "The sum must be equal to the number of teams: expected {len}, got {sum}" | ||||
| msgstr "" | ||||
| "La somme doit être égale au nombre d'équipes : attendu {len}, obtenu {sum}" | ||||
|  | ||||
| #: draw/consumers.py:162 | ||||
| #: draw/consumers.py:161 | ||||
| msgid "There can be at most one pool with 5 teams." | ||||
| msgstr "Il ne peut y avoir au plus qu'une seule poule de 5 équipes." | ||||
|  | ||||
| #: draw/consumers.py:190 | ||||
| #: draw/consumers.py:189 | ||||
| msgid "Draw started!" | ||||
| msgstr "Le tirage a commencé !" | ||||
|  | ||||
| #: draw/consumers.py:210 | ||||
| #: draw/consumers.py:209 | ||||
| #, python-brace-format | ||||
| msgid "The draw for the tournament {tournament} will start." | ||||
| msgstr "Le tirage au sort du tournoi {tournament} va commencer." | ||||
|  | ||||
| #: draw/consumers.py:221 draw/consumers.py:247 draw/consumers.py:578 | ||||
| #: draw/consumers.py:749 draw/consumers.py:832 draw/consumers.py:849 | ||||
| #: draw/consumers.py:220 draw/consumers.py:245 draw/consumers.py:576 | ||||
| #: draw/consumers.py:765 draw/consumers.py:847 draw/consumers.py:864 | ||||
| #: draw/templates/draw/tournament_content.html:5 | ||||
| msgid "The draw has not started yet." | ||||
| msgstr "Le tirage au sort n'a pas encore commencé." | ||||
|  | ||||
| #: draw/consumers.py:233 | ||||
| #: draw/consumers.py:232 | ||||
| #, python-brace-format | ||||
| msgid "The draw for the tournament {tournament} is aborted." | ||||
| msgstr "Le tirage au sort du tournoi {tournament} est annulé." | ||||
|  | ||||
| #: draw/consumers.py:274 draw/consumers.py:295 draw/consumers.py:524 | ||||
| #: draw/consumers.py:583 draw/consumers.py:754 | ||||
| #: draw/consumers.py:272 draw/consumers.py:293 draw/consumers.py:522 | ||||
| #: draw/consumers.py:581 draw/consumers.py:770 | ||||
| msgid "This is not the time for this." | ||||
| msgstr "Ce n'est pas le moment pour cela." | ||||
|  | ||||
| #: draw/consumers.py:287 draw/consumers.py:290 | ||||
| #: draw/consumers.py:285 draw/consumers.py:288 | ||||
| msgid "You've already launched the dice." | ||||
| msgstr "Vous avez déjà lancé le dé." | ||||
|  | ||||
| #: draw/consumers.py:293 | ||||
| #: draw/consumers.py:291 | ||||
| msgid "It is not your turn." | ||||
| msgstr "Ce n'est pas votre tour." | ||||
|  | ||||
| #: draw/consumers.py:371 | ||||
| #: draw/consumers.py:369 | ||||
| #, python-brace-format | ||||
| msgid "Dices from teams {teams} are identical. Please relaunch your dices." | ||||
| msgstr "" | ||||
| "Les dés des équipes {teams} sont identiques. Merci de relancer vos dés." | ||||
|  | ||||
| #: draw/consumers.py:852 | ||||
| #: draw/consumers.py:867 | ||||
| msgid "This is only available for the final tournament." | ||||
| msgstr "Cela n'est possible que pour la finale." | ||||
|  | ||||
| #: draw/models.py:26 | ||||
| #: draw/models.py:25 | ||||
| msgid "The associated tournament." | ||||
| msgstr "Le tournoi associé." | ||||
|  | ||||
| #: draw/models.py:35 | ||||
| #: draw/models.py:34 | ||||
| msgid "current round" | ||||
| msgstr "tour actuel" | ||||
|  | ||||
| #: draw/models.py:36 | ||||
| #: draw/models.py:35 | ||||
| msgid "The current round where teams select their problems." | ||||
| msgstr "Le tour en cours où les équipes choisissent leurs problèmes." | ||||
|  | ||||
| #: draw/models.py:42 | ||||
| #: draw/models.py:41 | ||||
| msgid "last message" | ||||
| msgstr "dernier message" | ||||
|  | ||||
| #: draw/models.py:43 | ||||
| #: draw/models.py:42 | ||||
| msgid "The last message that is displayed on the drawing interface." | ||||
| msgstr "Le dernier message qui est affiché sur l'interface de tirage." | ||||
|  | ||||
| #: draw/models.py:172 | ||||
| #: draw/models.py:171 | ||||
| #, python-brace-format | ||||
| msgid "Draw of tournament {tournament}" | ||||
| msgstr "Tirage au sort du tournoi {tournament}" | ||||
|  | ||||
| #: draw/models.py:175 draw/models.py:187 | ||||
| #: draw/models.py:174 draw/models.py:186 | ||||
| msgid "draw" | ||||
| msgstr "tirage au sort" | ||||
|  | ||||
| #: draw/models.py:176 | ||||
| #: draw/models.py:175 | ||||
| msgid "draws" | ||||
| msgstr "tirages au sort" | ||||
|  | ||||
| #: draw/models.py:192 | ||||
| #: draw/models.py:191 | ||||
| msgid "Round 1" | ||||
| msgstr "Tour 1" | ||||
|  | ||||
| #: draw/models.py:193 | ||||
| #: draw/models.py:192 | ||||
| msgid "Round 2" | ||||
| msgstr "Tour 2" | ||||
|  | ||||
| #: draw/models.py:195 | ||||
| #: draw/models.py:194 | ||||
| msgid "number" | ||||
| msgstr "numéro" | ||||
|  | ||||
| #: draw/models.py:196 | ||||
| #: draw/models.py:195 | ||||
| msgid "The number of the round, 1 or 2" | ||||
| msgstr "Le numéro du tour, 1 ou 2" | ||||
|  | ||||
| #: draw/models.py:206 | ||||
| #: draw/models.py:205 | ||||
| msgid "current pool" | ||||
| msgstr "poule actuelle" | ||||
|  | ||||
| #: draw/models.py:207 | ||||
| #: draw/models.py:206 | ||||
| msgid "The current pool where teams select their problems." | ||||
| msgstr "La poule en cours, où les équipes choisissent leurs problèmes" | ||||
|  | ||||
| #: draw/models.py:230 | ||||
| #: draw/models.py:229 | ||||
| msgid "rounds" | ||||
| msgstr "tours" | ||||
|  | ||||
| #: draw/models.py:252 participation/models.py:370 | ||||
| #: draw/models.py:251 participation/models.py:369 | ||||
| msgid "letter" | ||||
| msgstr "lettre" | ||||
|  | ||||
| #: draw/models.py:253 | ||||
| #: draw/models.py:252 | ||||
| msgid "The letter of the pool: A, B, C or D." | ||||
| msgstr "La lettre de la poule : A, B, C ou D." | ||||
|  | ||||
| #: draw/models.py:257 | ||||
| #: draw/models.py:256 | ||||
| #: participation/templates/participation/tournament_detail.html:15 | ||||
| msgid "size" | ||||
| msgstr "taille" | ||||
|  | ||||
| #: draw/models.py:259 | ||||
| #: draw/models.py:258 | ||||
| msgid "The number of teams in this pool, between 3 and 5." | ||||
| msgstr "Le nombre d'équipes dans la poule, entre 3 et 5." | ||||
|  | ||||
| #: draw/models.py:268 | ||||
| #: draw/models.py:267 | ||||
| msgid "current team" | ||||
| msgstr "équipe actuelle" | ||||
|  | ||||
| #: draw/models.py:269 | ||||
| #: draw/models.py:268 | ||||
| msgid "The current team that is selecting its problem." | ||||
| msgstr "L'équipe qui est en train de choisir son problème." | ||||
|  | ||||
| #: draw/models.py:278 | ||||
| #: draw/models.py:277 | ||||
| msgid "associated pool" | ||||
| msgstr "poule associée" | ||||
|  | ||||
| #: draw/models.py:279 | ||||
| #: draw/models.py:278 | ||||
| msgid "The full pool instance." | ||||
| msgstr "L'instance complète de la poule." | ||||
|  | ||||
| #: draw/models.py:393 | ||||
| #: draw/models.py:392 | ||||
| #, python-brace-format | ||||
| msgid "Pool {letter}{number}" | ||||
| msgstr "Poule {letter}{number}" | ||||
|  | ||||
| #: draw/models.py:396 draw/models.py:423 participation/admin.py:69 | ||||
| #: participation/admin.py:88 participation/models.py:422 | ||||
| #: participation/models.py:431 participation/tables.py:82 | ||||
| #: draw/models.py:395 draw/models.py:422 participation/admin.py:69 | ||||
| #: participation/admin.py:88 participation/models.py:421 | ||||
| #: participation/models.py:430 participation/tables.py:82 | ||||
| msgid "pool" | ||||
| msgstr "poule" | ||||
|  | ||||
| #: draw/models.py:397 participation/models.py:423 | ||||
| #: draw/models.py:396 participation/models.py:422 | ||||
| msgid "pools" | ||||
| msgstr "poules" | ||||
|  | ||||
| #: draw/models.py:409 participation/models.py:343 participation/models.py:555 | ||||
| #: participation/models.py:585 participation/models.py:623 | ||||
| #: draw/models.py:408 participation/models.py:342 participation/models.py:554 | ||||
| #: participation/models.py:584 participation/models.py:622 | ||||
| msgid "participation" | ||||
| msgstr "participation" | ||||
|  | ||||
| #: draw/models.py:430 | ||||
| #: draw/models.py:429 | ||||
| msgid "passage index" | ||||
| msgstr "numéro de passage" | ||||
|  | ||||
| #: draw/models.py:431 | ||||
| #: draw/models.py:430 | ||||
| msgid "" | ||||
| "The passage order in the pool, between 0 and the size of the pool minus 1." | ||||
| msgstr "" | ||||
| "L'ordre de passage dans la poule, de 0 à la taille de la poule moins 1." | ||||
|  | ||||
| #: draw/models.py:439 | ||||
| #: draw/models.py:438 | ||||
| msgid "choose index" | ||||
| msgstr "numéro de choix" | ||||
|  | ||||
| #: draw/models.py:440 | ||||
| #: draw/models.py:439 | ||||
| msgid "" | ||||
| "The choice order in the pool, between 0 and the size of the pool minus 1." | ||||
| msgstr "" | ||||
| "L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1." | ||||
|  | ||||
| #: draw/models.py:446 draw/models.py:469 participation/models.py:438 | ||||
| #: participation/models.py:592 | ||||
| #: draw/models.py:445 draw/models.py:468 participation/models.py:437 | ||||
| #: participation/models.py:591 | ||||
| #, python-brace-format | ||||
| msgid "Problem #{problem}" | ||||
| msgstr "Problème n°{problem}" | ||||
|  | ||||
| #: draw/models.py:450 draw/models.py:473 | ||||
| #: draw/models.py:449 draw/models.py:472 | ||||
| msgid "accepted problem" | ||||
| msgstr "problème accepté" | ||||
|  | ||||
| #: draw/models.py:457 | ||||
| #: draw/models.py:456 | ||||
| msgid "passage dice" | ||||
| msgstr "dé d'ordre de passage" | ||||
|  | ||||
| #: draw/models.py:464 | ||||
| #: draw/models.py:463 | ||||
| msgid "choice dice" | ||||
| msgstr "dé d'ordre de choix" | ||||
|  | ||||
| #: draw/models.py:478 | ||||
| #: draw/models.py:477 | ||||
| msgid "rejected problems" | ||||
| msgstr "problèmes rejetés" | ||||
|  | ||||
| #: draw/models.py:504 | ||||
| #: draw/models.py:503 | ||||
| #, python-brace-format | ||||
| msgid "Draw of the team {trigram} for the pool {letter}{number}" | ||||
| msgstr "Tirage de l'équipe {trigram} pour la poule {letter}{number}" | ||||
|  | ||||
| #: draw/models.py:510 | ||||
| #: draw/models.py:509 | ||||
| msgid "team draw" | ||||
| msgstr "tirage d'équipe" | ||||
|  | ||||
| #: draw/models.py:511 | ||||
| #: draw/models.py:510 | ||||
| msgid "team draws" | ||||
| msgstr "tirages d'équipe" | ||||
|  | ||||
| @@ -288,48 +288,70 @@ msgstr "Démarrer !" | ||||
| msgid "Last dices" | ||||
| msgstr "Derniers jets de dés" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:60 | ||||
| msgid "Abort" | ||||
| msgstr "Annuler" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:135 | ||||
| #: draw/templates/draw/tournament_content.html:129 | ||||
| msgid "Launch dice" | ||||
| msgstr "Lancer le dé" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:149 | ||||
| #: draw/templates/draw/tournament_content.html:143 | ||||
| msgid "Draw a problem" | ||||
| msgstr "Tirer un problème" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:160 | ||||
| #: draw/templates/draw/tournament_content.html:154 | ||||
| msgid "Accept" | ||||
| msgstr "Accepter" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:163 | ||||
| #: draw/templates/draw/tournament_content.html:157 | ||||
| msgid "Decline" | ||||
| msgstr "Refuser" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:174 | ||||
| #: draw/templates/draw/tournament_content.html:168 | ||||
| msgid "Export" | ||||
| msgstr "Exporter" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:182 | ||||
| #: draw/templates/draw/tournament_content.html:176 | ||||
| msgid "Continue draw" | ||||
| msgstr "Continuer le tirage" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:215 participation/admin.py:100 | ||||
| #: participation/models.py:125 participation/models.py:311 | ||||
| #: draw/templates/draw/tournament_content.html:209 participation/admin.py:100 | ||||
| #: participation/models.py:125 participation/models.py:310 | ||||
| #: registration/models.py:127 | ||||
| msgid "team" | ||||
| msgstr "équipe" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:225 | ||||
| #: draw/templates/draw/tournament_content.html:226 | ||||
| #: draw/templates/draw/tournament_content.html:227 | ||||
| #: draw/templates/draw/tournament_content.html:228 | ||||
| #: draw/templates/draw/tournament_content.html:229 | ||||
| #: draw/templates/draw/tournament_content.html:219 | ||||
| #: draw/templates/draw/tournament_content.html:220 | ||||
| #: draw/templates/draw/tournament_content.html:221 | ||||
| #: draw/templates/draw/tournament_content.html:222 | ||||
| #: draw/templates/draw/tournament_content.html:223 | ||||
| msgid "Room" | ||||
| msgstr "Salle" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:329 | ||||
| #: draw/templates/draw/tournament_content.html:347 | ||||
| msgid "Abort" | ||||
| msgstr "Annuler" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:338 | ||||
| msgid "Are you sure?" | ||||
| msgstr "Êtes-vous sûr⋅e ?" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:342 | ||||
| msgid "This will reset the draw from the beginning." | ||||
| msgstr "Cela va réinitialiser le tirage au sort depuis le début." | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:343 | ||||
| msgid "This operation is irreversible." | ||||
| msgstr "Cette opération est irréversible." | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:344 | ||||
| msgid "Are you sure you want to abort this draw?" | ||||
| msgstr "Êtes-vous sûr·e de vouloir annuler le tirage au sort ?" | ||||
|  | ||||
| #: draw/templates/draw/tournament_content.html:348 | ||||
| #: tfjm/templates/base_modal.html:17 | ||||
| msgid "Close" | ||||
| msgstr "Fermer" | ||||
|  | ||||
| #: logs/apps.py:11 | ||||
| msgid "Logs" | ||||
| msgstr "Logs" | ||||
| @@ -399,26 +421,26 @@ msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}" | ||||
| msgid "valid" | ||||
| msgstr "valide" | ||||
|  | ||||
| #: participation/admin.py:24 participation/models.py:332 | ||||
| #: participation/admin.py:24 participation/models.py:331 | ||||
| msgid "selected for final" | ||||
| msgstr "sélectionnée pour la finale" | ||||
|  | ||||
| #: participation/admin.py:57 participation/admin.py:116 | ||||
| #: participation/models.py:445 participation/tables.py:109 | ||||
| #: participation/models.py:444 participation/tables.py:109 | ||||
| msgid "defender" | ||||
| msgstr "défenseur⋅se" | ||||
|  | ||||
| #: participation/admin.py:61 participation/models.py:452 | ||||
| #: participation/models.py:635 | ||||
| #: participation/admin.py:61 participation/models.py:451 | ||||
| #: participation/models.py:634 | ||||
| msgid "opponent" | ||||
| msgstr "opposant⋅e" | ||||
|  | ||||
| #: participation/admin.py:65 participation/models.py:459 | ||||
| #: participation/models.py:636 | ||||
| #: participation/admin.py:65 participation/models.py:458 | ||||
| #: participation/models.py:635 | ||||
| msgid "reporter" | ||||
| msgstr "rapporteur⋅e" | ||||
|  | ||||
| #: participation/admin.py:120 participation/models.py:590 | ||||
| #: participation/admin.py:120 participation/models.py:589 | ||||
| msgid "problem" | ||||
| msgstr "numéro de problème" | ||||
|  | ||||
| @@ -471,17 +493,17 @@ msgstr "Le fichier envoyé doit être au format PDF." | ||||
| msgid "The PDF file must not have more than 30 pages." | ||||
| msgstr "Le fichier PDF ne doit pas avoir plus de 30 pages." | ||||
|  | ||||
| #: participation/forms.py:209 | ||||
| #: participation/forms.py:210 | ||||
| msgid "Add new jury" | ||||
| msgstr "Ajouter un⋅e nouvelleau juré⋅e" | ||||
|  | ||||
| #: participation/forms.py:224 | ||||
| #: participation/forms.py:225 | ||||
| #: participation/templates/participation/pool_detail.html:77 | ||||
| #: participation/templates/participation/tournament_detail.html:111 | ||||
| msgid "Add" | ||||
| msgstr "Ajouter" | ||||
|  | ||||
| #: participation/forms.py:237 registration/forms.py:35 registration/forms.py:60 | ||||
| #: participation/forms.py:238 registration/forms.py:35 registration/forms.py:60 | ||||
| msgid "This email address is already used." | ||||
| msgstr "Cette adresse e-mail est déjà utilisée." | ||||
|  | ||||
| @@ -608,53 +630,53 @@ msgstr "organisateur⋅rices" | ||||
| msgid "final" | ||||
| msgstr "finale" | ||||
|  | ||||
| #: participation/models.py:297 registration/admin.py:92 | ||||
| #: participation/models.py:296 registration/admin.py:93 | ||||
| msgid "tournaments" | ||||
| msgstr "tournois" | ||||
|  | ||||
| #: participation/models.py:326 | ||||
| #: participation/models.py:325 | ||||
| msgid "valid team" | ||||
| msgstr "équipe valide" | ||||
|  | ||||
| #: participation/models.py:327 | ||||
| #: participation/models.py:326 | ||||
| msgid "The participation got the validation of the organizers." | ||||
| msgstr "La participation a été validée par les organisateur⋅rices." | ||||
|  | ||||
| #: participation/models.py:333 | ||||
| #: participation/models.py:332 | ||||
| msgid "The team is selected for the final tournament." | ||||
| msgstr "L'équipe est sélectionnée pour la finale." | ||||
|  | ||||
| #: participation/models.py:340 | ||||
| #: participation/models.py:339 | ||||
| #, python-brace-format | ||||
| msgid "Participation of the team {name} ({trigram})" | ||||
| msgstr "Participation de l'équipe {name} ({trigram})" | ||||
|  | ||||
| #: participation/models.py:344 participation/models.py:376 | ||||
| #: participation/models.py:343 participation/models.py:375 | ||||
| msgid "participations" | ||||
| msgstr "participations" | ||||
|  | ||||
| #: participation/models.py:358 participation/models.py:359 | ||||
| #: participation/models.py:357 participation/models.py:358 | ||||
| #, python-brace-format | ||||
| msgid "Round {round}" | ||||
| msgstr "Tour {round}" | ||||
|  | ||||
| #: participation/models.py:382 | ||||
| #: participation/models.py:381 | ||||
| msgid "juries" | ||||
| msgstr "jurys" | ||||
|  | ||||
| #: participation/models.py:389 | ||||
| #: participation/models.py:388 | ||||
| msgid "BigBlueButton URL" | ||||
| msgstr "Lien BigBlueButton" | ||||
|  | ||||
| #: participation/models.py:390 | ||||
| #: participation/models.py:389 | ||||
| msgid "The link of the BBB visio for this pool." | ||||
| msgstr "Le lien du salon BBB pour cette poule." | ||||
|  | ||||
| #: participation/models.py:395 | ||||
| #: participation/models.py:394 | ||||
| msgid "results available" | ||||
| msgstr "résultats disponibles" | ||||
|  | ||||
| #: participation/models.py:396 | ||||
| #: participation/models.py:395 | ||||
| msgid "" | ||||
| "Check this case when results become accessible to teams. They stay " | ||||
| "accessible to you. Only averages are given." | ||||
| @@ -663,20 +685,20 @@ msgstr "" | ||||
| "Ils restent toujours accessibles pour vous. Seules les moyennes sont " | ||||
| "communiquées." | ||||
|  | ||||
| #: participation/models.py:416 | ||||
| #: participation/models.py:415 | ||||
| #, python-brace-format | ||||
| msgid "Pool of day {round} for tournament {tournament} with teams {teams}" | ||||
| msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}" | ||||
|  | ||||
| #: participation/models.py:436 | ||||
| #: participation/models.py:435 | ||||
| msgid "defended solution" | ||||
| msgstr "solution défendue" | ||||
|  | ||||
| #: participation/models.py:464 | ||||
| #: participation/models.py:463 | ||||
| msgid "penalties" | ||||
| msgstr "pénalités" | ||||
|  | ||||
| #: participation/models.py:466 | ||||
| #: participation/models.py:465 | ||||
| msgid "" | ||||
| "Number of penalties for the defender. The defender will loose a 0.5 " | ||||
| "coefficient per penalty." | ||||
| @@ -684,120 +706,120 @@ msgstr "" | ||||
| "Nombre de pénalités pour læ défenseur⋅se. Læ défenseur⋅se perd un " | ||||
| "coefficient 0.5 sur sa présentation orale par pénalité." | ||||
|  | ||||
| #: participation/models.py:526 participation/models.py:529 | ||||
| #: participation/models.py:532 | ||||
| #: participation/models.py:525 participation/models.py:528 | ||||
| #: participation/models.py:531 | ||||
| #, python-brace-format | ||||
| msgid "Team {trigram} is not registered in the pool." | ||||
| msgstr "L'équipe {trigram} n'est pas inscrite dans la poule." | ||||
|  | ||||
| #: participation/models.py:537 | ||||
| #: participation/models.py:536 | ||||
| #, python-brace-format | ||||
| msgid "Passage of {defender} for problem {problem}" | ||||
| msgstr "Passage de {defender} pour le problème {problem}" | ||||
|  | ||||
| #: participation/models.py:541 participation/models.py:549 | ||||
| #: participation/models.py:630 participation/models.py:672 | ||||
| #: participation/models.py:540 participation/models.py:548 | ||||
| #: participation/models.py:629 participation/models.py:671 | ||||
| msgid "passage" | ||||
| msgstr "passage" | ||||
|  | ||||
| #: participation/models.py:542 | ||||
| #: participation/models.py:541 | ||||
| msgid "passages" | ||||
| msgstr "passages" | ||||
|  | ||||
| #: participation/models.py:560 | ||||
| #: participation/models.py:559 | ||||
| msgid "difference" | ||||
| msgstr "différence" | ||||
|  | ||||
| #: participation/models.py:561 | ||||
| #: participation/models.py:560 | ||||
| msgid "Score to add/remove on the final score" | ||||
| msgstr "Score à ajouter/retrancher au score final" | ||||
|  | ||||
| #: participation/models.py:568 | ||||
| #: participation/models.py:567 | ||||
| msgid "tweak" | ||||
| msgstr "harmonisation" | ||||
|  | ||||
| #: participation/models.py:569 | ||||
| #: participation/models.py:568 | ||||
| msgid "tweaks" | ||||
| msgstr "harmonisations" | ||||
|  | ||||
| #: participation/models.py:597 | ||||
| #: participation/models.py:596 | ||||
| msgid "solution for the final tournament" | ||||
| msgstr "solution pour la finale" | ||||
|  | ||||
| #: participation/models.py:602 participation/models.py:641 | ||||
| #: participation/models.py:601 participation/models.py:640 | ||||
| msgid "file" | ||||
| msgstr "fichier" | ||||
|  | ||||
| #: participation/models.py:608 | ||||
| #: participation/models.py:607 | ||||
| #, python-brace-format | ||||
| msgid "Solution of team {team} for problem {problem}" | ||||
| msgstr "Solution de l'équipe {team} pour le problème {problem}" | ||||
|  | ||||
| #: participation/models.py:610 | ||||
| #: participation/models.py:609 | ||||
| msgid "for final" | ||||
| msgstr "pour la finale" | ||||
|  | ||||
| #: participation/models.py:613 | ||||
| #: participation/models.py:612 | ||||
| msgid "solution" | ||||
| msgstr "solution" | ||||
|  | ||||
| #: participation/models.py:614 | ||||
| #: participation/models.py:613 | ||||
| msgid "solutions" | ||||
| msgstr "solutions" | ||||
|  | ||||
| #: participation/models.py:647 | ||||
| #: participation/models.py:646 | ||||
| #, python-brace-format | ||||
| msgid "Synthesis of {team} as {type} for problem {problem} of {defender}" | ||||
| msgstr "" | ||||
| "Note de synthèse de l'équipe {team} en tant que {type} pour le problème " | ||||
| "{problem} de {defender}" | ||||
|  | ||||
| #: participation/models.py:655 | ||||
| #: participation/models.py:654 | ||||
| msgid "synthesis" | ||||
| msgstr "note de synthèse" | ||||
|  | ||||
| #: participation/models.py:656 | ||||
| #: participation/models.py:655 | ||||
| msgid "syntheses" | ||||
| msgstr "notes de synthèse" | ||||
|  | ||||
| #: participation/models.py:665 | ||||
| #: participation/models.py:664 | ||||
| msgid "jury" | ||||
| msgstr "jury" | ||||
|  | ||||
| #: participation/models.py:677 | ||||
| #: participation/models.py:676 | ||||
| msgid "defender writing note" | ||||
| msgstr "note d'écrit de læ défenseur⋅se" | ||||
|  | ||||
| #: participation/models.py:683 | ||||
| #: participation/models.py:682 | ||||
| msgid "defender oral note" | ||||
| msgstr "note d'oral de læ défenseur⋅se" | ||||
|  | ||||
| #: participation/models.py:689 | ||||
| #: participation/models.py:688 | ||||
| msgid "opponent writing note" | ||||
| msgstr "note d'écrit de l'opposant⋅e" | ||||
|  | ||||
| #: participation/models.py:695 | ||||
| #: participation/models.py:694 | ||||
| msgid "opponent oral note" | ||||
| msgstr "note d'oral de l'opposant⋅e" | ||||
|  | ||||
| #: participation/models.py:701 | ||||
| #: participation/models.py:700 | ||||
| msgid "reporter writing note" | ||||
| msgstr "note d'écrit de læ rapporteur⋅e" | ||||
|  | ||||
| #: participation/models.py:707 | ||||
| #: participation/models.py:706 | ||||
| msgid "reporter oral note" | ||||
| msgstr "note d'oral de læ rapporteur⋅e" | ||||
|  | ||||
| #: participation/models.py:725 | ||||
| #: participation/models.py:724 | ||||
| #, python-brace-format | ||||
| msgid "Notes of {jury} for {passage}" | ||||
| msgstr "Notes de {jury} pour le {passage}" | ||||
|  | ||||
| #: participation/models.py:732 | ||||
| #: participation/models.py:731 | ||||
| msgid "note" | ||||
| msgstr "note" | ||||
|  | ||||
| #: participation/models.py:733 | ||||
| #: participation/models.py:732 | ||||
| msgid "notes" | ||||
| msgstr "notes" | ||||
|  | ||||
| @@ -1061,8 +1083,8 @@ msgid "" | ||||
| "Be careful: this form register new users. To add existing users into the " | ||||
| "jury, please use this form:" | ||||
| msgstr "" | ||||
| "Attention : ce formulaire inscrit des nouvelleaux utilisateur⋅rices. " | ||||
| "Pour ajouter des utilisateur⋅rices au jury, utilisez ce formulaire :" | ||||
| "Attention : ce formulaire inscrit des nouvelleaux utilisateur⋅rices. Pour " | ||||
| "ajouter des utilisateur⋅rices au jury, utilisez ce formulaire :" | ||||
|  | ||||
| #: participation/templates/participation/pool_add_jurys.html:11 | ||||
| #: participation/templates/participation/pool_add_jurys.html:34 | ||||
| @@ -1504,43 +1526,43 @@ msgstr "Participation de l'équipe {trigram}" | ||||
| msgid "You can't upload a solution after the deadline." | ||||
| msgstr "Vous ne pouvez pas envoyer de solution après la date limite." | ||||
|  | ||||
| #: participation/views.py:727 | ||||
| #: participation/views.py:730 | ||||
| #, python-brace-format | ||||
| msgid "Jurys of {pool}" | ||||
| msgstr "Juré⋅es de la {pool}" | ||||
|  | ||||
| #: participation/views.py:749 | ||||
| #: participation/views.py:757 | ||||
| msgid "New TFJM² jury account" | ||||
| msgstr "Nouveau compte de juré⋅e pour le TFJM²" | ||||
|  | ||||
| #: participation/views.py:761 | ||||
| #: participation/views.py:770 | ||||
| #, python-brace-format | ||||
| msgid "The jury {name} has been successfully added!" | ||||
| msgstr "Læ juré⋅e {name} a été ajouté⋅e avec succès !" | ||||
|  | ||||
| #: participation/views.py:796 | ||||
| #: participation/views.py:806 | ||||
| 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 :" | ||||
|  | ||||
| #: participation/views.py:804 | ||||
| #: participation/views.py:814 | ||||
| msgid "Notes were successfully uploaded." | ||||
| msgstr "Les notes ont bien été envoyées." | ||||
|  | ||||
| #: participation/views.py:916 | ||||
| #: participation/views.py:926 | ||||
| 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." | ||||
|  | ||||
| #: registration/admin.py:21 registration/admin.py:36 registration/admin.py:52 | ||||
| #: registration/admin.py:68 registration/admin.py:84 | ||||
| #: registration/admin.py:21 registration/admin.py:37 registration/admin.py:53 | ||||
| #: registration/admin.py:69 registration/admin.py:85 | ||||
| msgid "first name" | ||||
| msgstr "prénom" | ||||
|  | ||||
| #: registration/admin.py:25 registration/admin.py:40 registration/admin.py:56 | ||||
| #: registration/admin.py:72 registration/admin.py:88 registration/tables.py:17 | ||||
| #: registration/admin.py:25 registration/admin.py:41 registration/admin.py:57 | ||||
| #: registration/admin.py:73 registration/admin.py:89 registration/tables.py:17 | ||||
| msgid "last name" | ||||
| msgstr "nom de famille" | ||||
|  | ||||
| #: registration/admin.py:104 | ||||
| #: registration/admin.py:105 | ||||
| msgid "registration type" | ||||
| msgstr "type d'inscription" | ||||
|  | ||||
| @@ -1552,7 +1574,7 @@ msgstr "rôle" | ||||
| msgid "participant" | ||||
| msgstr "participant⋅e" | ||||
|  | ||||
| #: registration/forms.py:25 registration/models.py:286 | ||||
| #: registration/forms.py:25 registration/models.py:285 | ||||
| msgid "coach" | ||||
| msgstr "encadrant⋅e" | ||||
|  | ||||
| @@ -1577,7 +1599,7 @@ msgstr "email confirmé" | ||||
| msgid "Activate your TFJM² account" | ||||
| msgstr "Activez votre compte du TFJM²" | ||||
|  | ||||
| #: registration/models.py:99 registration/models.py:339 | ||||
| #: registration/models.py:99 registration/models.py:338 | ||||
| msgid "registration" | ||||
| msgstr "inscription" | ||||
|  | ||||
| @@ -1633,91 +1655,91 @@ msgstr "" | ||||
| msgid "photo authorization" | ||||
| msgstr "autorisation de droit à l'image" | ||||
|  | ||||
| #: registration/models.py:196 | ||||
| #: registration/models.py:195 | ||||
| msgid "participant registration" | ||||
| msgstr "inscription de participant⋅e" | ||||
|  | ||||
| #: registration/models.py:197 | ||||
| #: registration/models.py:196 | ||||
| msgid "participant registrations" | ||||
| msgstr "inscriptions de participant⋅es" | ||||
|  | ||||
| #: registration/models.py:206 | ||||
| #: registration/models.py:205 | ||||
| msgid "birth date" | ||||
| msgstr "date de naissance" | ||||
|  | ||||
| #: registration/models.py:212 | ||||
| #: registration/models.py:211 | ||||
| msgid "12th grade" | ||||
| msgstr "Terminale" | ||||
|  | ||||
| #: registration/models.py:213 | ||||
| #: registration/models.py:212 | ||||
| msgid "11th grade" | ||||
| msgstr "Première" | ||||
|  | ||||
| #: registration/models.py:214 | ||||
| #: registration/models.py:213 | ||||
| msgid "10th grade or lower" | ||||
| msgstr "Seconde ou inférieur" | ||||
|  | ||||
| #: registration/models.py:216 | ||||
| #: registration/models.py:215 | ||||
| msgid "student class" | ||||
| msgstr "classe" | ||||
|  | ||||
| #: registration/models.py:221 | ||||
| #: registration/models.py:220 | ||||
| msgid "school" | ||||
| msgstr "école" | ||||
|  | ||||
| #: registration/models.py:226 | ||||
| #: registration/models.py:225 | ||||
| msgid "responsible name" | ||||
| msgstr "nom de læ responsable légal⋅e" | ||||
|  | ||||
| #: registration/models.py:231 | ||||
| #: registration/models.py:230 | ||||
| msgid "responsible phone number" | ||||
| msgstr "numéro de téléphone de læ responsable légal⋅e" | ||||
|  | ||||
| #: registration/models.py:236 | ||||
| #: registration/models.py:235 | ||||
| msgid "responsible email address" | ||||
| msgstr "adresse e-mail de læ responsable légal⋅e" | ||||
|  | ||||
| #: registration/models.py:241 | ||||
| #: registration/models.py:240 | ||||
| msgid "parental authorization" | ||||
| msgstr "autorisation parentale" | ||||
|  | ||||
| #: registration/models.py:248 | ||||
| #: registration/models.py:247 | ||||
| msgid "health sheet" | ||||
| msgstr "fiche sanitaire" | ||||
|  | ||||
| #: registration/models.py:255 | ||||
| #: registration/models.py:254 | ||||
| msgid "vaccine sheet" | ||||
| msgstr "carnet de vaccination" | ||||
|  | ||||
| #: registration/models.py:263 | ||||
| #: registration/models.py:262 | ||||
| msgid "student" | ||||
| msgstr "étudiant⋅e" | ||||
|  | ||||
| #: registration/models.py:271 | ||||
| #: registration/models.py:270 | ||||
| msgid "student registration" | ||||
| msgstr "inscription d'élève" | ||||
|  | ||||
| #: registration/models.py:272 | ||||
| #: registration/models.py:271 | ||||
| msgid "student registrations" | ||||
| msgstr "inscriptions d'élève" | ||||
|  | ||||
| #: registration/models.py:281 registration/models.py:303 | ||||
| #: registration/models.py:280 registration/models.py:302 | ||||
| msgid "professional activity" | ||||
| msgstr "activité professionnelle" | ||||
|  | ||||
| #: registration/models.py:294 | ||||
| #: registration/models.py:293 | ||||
| msgid "coach registration" | ||||
| msgstr "inscription d'encadrant⋅e" | ||||
|  | ||||
| #: registration/models.py:295 | ||||
| #: registration/models.py:294 | ||||
| msgid "coach registrations" | ||||
| msgstr "inscriptions d'encadrant⋅es" | ||||
|  | ||||
| #: registration/models.py:307 | ||||
| #: registration/models.py:306 | ||||
| msgid "administrator" | ||||
| msgstr "administrateur⋅rice" | ||||
|  | ||||
| #: registration/models.py:308 | ||||
| #: registration/models.py:307 | ||||
| msgid "" | ||||
| "An administrator has all rights. Please don't give this right to all juries " | ||||
| "and volunteers." | ||||
| @@ -1725,76 +1747,76 @@ msgstr "" | ||||
| "Un⋅e administrateur⋅rice a tous les droits. Merci de ne pas donner ce droit " | ||||
| "à toustes les juré⋅es et bénévoles." | ||||
|  | ||||
| #: registration/models.py:318 | ||||
| #: registration/models.py:317 | ||||
| msgid "admin" | ||||
| msgstr "admin" | ||||
|  | ||||
| #: registration/models.py:318 | ||||
| #: registration/models.py:317 | ||||
| msgid "volunteer" | ||||
| msgstr "bénévole" | ||||
|  | ||||
| #: registration/models.py:326 | ||||
| #: registration/models.py:325 | ||||
| msgid "volunteer registration" | ||||
| msgstr "inscription de bénévole" | ||||
|  | ||||
| #: registration/models.py:327 | ||||
| #: registration/models.py:326 | ||||
| msgid "volunteer registrations" | ||||
| msgstr "inscriptions de bénévoles" | ||||
|  | ||||
| #: registration/models.py:343 | ||||
| #: registration/models.py:342 | ||||
| msgid "type" | ||||
| msgstr "type" | ||||
|  | ||||
| #: registration/models.py:346 | ||||
| #: registration/models.py:345 | ||||
| msgid "No payment" | ||||
| msgstr "Pas de paiement" | ||||
|  | ||||
| #: registration/models.py:348 | ||||
| #: registration/models.py:347 | ||||
| msgid "Scholarship" | ||||
| msgstr "Notification de bourse" | ||||
|  | ||||
| #: registration/models.py:349 | ||||
| #: registration/models.py:348 | ||||
| msgid "Bank transfer" | ||||
| msgstr "Virement bancaire" | ||||
|  | ||||
| #: registration/models.py:350 | ||||
| #: registration/models.py:349 | ||||
| msgid "Other (please indicate)" | ||||
| msgstr "Autre (veuillez spécifier)" | ||||
|  | ||||
| #: registration/models.py:351 | ||||
| #: registration/models.py:350 | ||||
| msgid "The tournament is free" | ||||
| msgstr "Le tournoi est gratuit" | ||||
|  | ||||
| #: registration/models.py:358 | ||||
| #: registration/models.py:357 | ||||
| msgid "scholarship file" | ||||
| msgstr "Notification de bourse" | ||||
|  | ||||
| #: registration/models.py:359 | ||||
| #: registration/models.py:358 | ||||
| msgid "only if you have a scholarship." | ||||
| msgstr "Nécessaire seulement si vous déclarez être boursier." | ||||
|  | ||||
| #: registration/models.py:366 | ||||
| #: registration/models.py:365 | ||||
| msgid "additional information" | ||||
| msgstr "informations additionnelles" | ||||
|  | ||||
| #: registration/models.py:367 | ||||
| #: registration/models.py:366 | ||||
| msgid "To help us to find your payment." | ||||
| msgstr "Pour nous aider à retrouver votre paiement, si nécessaire." | ||||
|  | ||||
| #: registration/models.py:373 | ||||
| #: registration/models.py:372 | ||||
| msgid "payment valid" | ||||
| msgstr "paiement valide" | ||||
|  | ||||
| #: registration/models.py:382 | ||||
| #: registration/models.py:381 | ||||
| #, python-brace-format | ||||
| msgid "Payment of {registration}" | ||||
| msgstr "Paiement de {registration}" | ||||
|  | ||||
| #: registration/models.py:385 | ||||
| #: registration/models.py:384 | ||||
| msgid "payment" | ||||
| msgstr "paiement" | ||||
|  | ||||
| #: registration/models.py:386 | ||||
| #: registration/models.py:385 | ||||
| msgid "payments" | ||||
| msgstr "paiements" | ||||
|  | ||||
| @@ -2367,10 +2389,6 @@ msgstr "À propos" | ||||
| msgid "Search results" | ||||
| msgstr "Résultats de la recherche" | ||||
|  | ||||
| #: tfjm/templates/base_modal.html:17 | ||||
| msgid "Close" | ||||
| msgstr "Fermer" | ||||
|  | ||||
| #: tfjm/templates/registration/logged_out.html:8 | ||||
| msgid "Thanks for spending some quality time with the Web site today." | ||||
| msgstr "Merci d'avoir utilisé la plateforme du TFJM²." | ||||
|   | ||||
		Reference in New Issue
	
	Block a user