Add confirmation modal before aborting a draw

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2023-04-05 18:41:28 +02:00
parent 7e212d011e
commit 746aae464a
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 243 additions and 202 deletions

View File

@ -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>

View File

@ -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²."