Only participants in a valid team can see the draw
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
parent
a240d7cad5
commit
3d7a39a593
|
@ -1,6 +1,7 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
{# The navbar to select the tournament #}
|
||||
|
@ -25,6 +26,10 @@
|
|||
aria-labelledby="tab-{{ tournament.id }}" tabindex="0">
|
||||
{% include "draw/tournament_content.html" with tournament=tournament %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning">
|
||||
{% trans "You don't participate to any tournament." %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import TemplateView
|
||||
from participation.models import Tournament
|
||||
|
||||
|
@ -25,8 +27,11 @@ class DisplayView(LoginRequiredMixin, TemplateView):
|
|||
# A volunteer can see their tournaments
|
||||
tournaments = reg.interesting_tournaments
|
||||
else:
|
||||
if not reg.team:
|
||||
raise PermissionDenied(_("You are not in a team."))
|
||||
|
||||
# A participant can see its own tournament, or the final if necessary
|
||||
tournaments = [reg.team.participation.tournament]
|
||||
tournaments = [reg.team.participation.tournament] if reg.team.participation.valid else []
|
||||
if reg.team.participation.final:
|
||||
tournaments.append(Tournament.final_tournament())
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: TFJM\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-04-07 12:02+0200\n"
|
||||
"POT-Creation-Date: 2023-04-10 10:00+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"
|
||||
|
@ -33,12 +33,12 @@ msgstr "équipes"
|
|||
msgid "tournament"
|
||||
msgstr "tournoi"
|
||||
|
||||
#: draw/admin.py:60 draw/models.py:228 draw/models.py:420
|
||||
#: draw/admin.py:60 draw/models.py:231 draw/models.py:426
|
||||
#: participation/models.py:355
|
||||
msgid "round"
|
||||
msgstr "tour"
|
||||
|
||||
#: draw/apps.py:10 tfjm/templates/base.html:97
|
||||
#: draw/apps.py:10 tfjm/templates/base.html:98
|
||||
msgid "Draw"
|
||||
msgstr "Tirage au sort"
|
||||
|
||||
|
@ -46,64 +46,64 @@ msgstr "Tirage au sort"
|
|||
msgid "You are not an organizer."
|
||||
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice."
|
||||
|
||||
#: draw/consumers.py:151
|
||||
#: draw/consumers.py:144
|
||||
msgid "The draw is already started."
|
||||
msgstr "Le tirage a déjà commencé."
|
||||
|
||||
#: draw/consumers.py:157
|
||||
#: draw/consumers.py:150
|
||||
msgid "Invalid format"
|
||||
msgstr "Format invalide"
|
||||
|
||||
#: draw/consumers.py:162
|
||||
#: draw/consumers.py:155
|
||||
#, 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:167
|
||||
#: draw/consumers.py:160
|
||||
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:195
|
||||
#: draw/consumers.py:188
|
||||
msgid "Draw started!"
|
||||
msgstr "Le tirage a commencé !"
|
||||
|
||||
#: draw/consumers.py:215
|
||||
#: draw/consumers.py:208
|
||||
#, 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:226 draw/consumers.py:251 draw/consumers.py:585
|
||||
#: draw/consumers.py:774 draw/consumers.py:856 draw/consumers.py:873
|
||||
#: draw/consumers.py:943 draw/templates/draw/tournament_content.html:5
|
||||
#: draw/consumers.py:219 draw/consumers.py:244 draw/consumers.py:578
|
||||
#: draw/consumers.py:767 draw/consumers.py:849 draw/consumers.py:866
|
||||
#: draw/consumers.py:936 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:238
|
||||
#: draw/consumers.py:231
|
||||
#, 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:278 draw/consumers.py:299 draw/consumers.py:531
|
||||
#: draw/consumers.py:590 draw/consumers.py:779
|
||||
#: draw/consumers.py:271 draw/consumers.py:292 draw/consumers.py:524
|
||||
#: draw/consumers.py:583 draw/consumers.py:772
|
||||
msgid "This is not the time for this."
|
||||
msgstr "Ce n'est pas le moment pour cela."
|
||||
|
||||
#: draw/consumers.py:291 draw/consumers.py:294
|
||||
#: draw/consumers.py:284 draw/consumers.py:287
|
||||
msgid "You've already launched the dice."
|
||||
msgstr "Vous avez déjà lancé le dé."
|
||||
|
||||
#: draw/consumers.py:297
|
||||
#: draw/consumers.py:290
|
||||
msgid "It is not your turn."
|
||||
msgstr "Ce n'est pas votre tour."
|
||||
|
||||
#: draw/consumers.py:378
|
||||
#: draw/consumers.py:371
|
||||
#, 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:876
|
||||
#: draw/consumers.py:869
|
||||
msgid "This is only available for the final tournament."
|
||||
msgstr "Cela n'est possible que pour la finale."
|
||||
|
||||
|
@ -164,118 +164,122 @@ msgstr "poule actuelle"
|
|||
msgid "The current pool where teams select their problems."
|
||||
msgstr "La poule en cours, où les équipes choisissent leurs problèmes"
|
||||
|
||||
#: draw/models.py:229
|
||||
#: draw/models.py:232
|
||||
msgid "rounds"
|
||||
msgstr "tours"
|
||||
|
||||
#: draw/models.py:251 participation/models.py:369
|
||||
#: draw/models.py:254 participation/models.py:369
|
||||
msgid "letter"
|
||||
msgstr "lettre"
|
||||
|
||||
#: draw/models.py:252
|
||||
#: draw/models.py:255
|
||||
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:256
|
||||
#: draw/models.py:259
|
||||
#: participation/templates/participation/tournament_detail.html:15
|
||||
msgid "size"
|
||||
msgstr "taille"
|
||||
|
||||
#: draw/models.py:258
|
||||
#: draw/models.py:261
|
||||
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:267
|
||||
#: draw/models.py:270
|
||||
msgid "current team"
|
||||
msgstr "équipe actuelle"
|
||||
|
||||
#: draw/models.py:268
|
||||
#: draw/models.py:271
|
||||
msgid "The current team that is selecting its problem."
|
||||
msgstr "L'équipe qui est en train de choisir son problème."
|
||||
|
||||
#: draw/models.py:277
|
||||
#: draw/models.py:280
|
||||
msgid "associated pool"
|
||||
msgstr "poule associée"
|
||||
|
||||
#: draw/models.py:278
|
||||
#: draw/models.py:281
|
||||
msgid "The full pool instance."
|
||||
msgstr "L'instance complète de la poule."
|
||||
|
||||
#: draw/models.py:398
|
||||
#: draw/models.py:404
|
||||
#, python-brace-format
|
||||
msgid "Pool {letter}{number}"
|
||||
msgstr "Poule {letter}{number}"
|
||||
|
||||
#: draw/models.py:401 draw/models.py:428 participation/admin.py:69
|
||||
#: draw/models.py:407 draw/models.py:434 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:402 participation/models.py:422
|
||||
#: draw/models.py:408 participation/models.py:422
|
||||
msgid "pools"
|
||||
msgstr "poules"
|
||||
|
||||
#: draw/models.py:414 participation/models.py:342 participation/models.py:580
|
||||
#: participation/models.py:610 participation/models.py:648
|
||||
#: draw/models.py:420 participation/models.py:342 participation/models.py:591
|
||||
#: participation/models.py:621 participation/models.py:659
|
||||
msgid "participation"
|
||||
msgstr "participation"
|
||||
|
||||
#: draw/models.py:435
|
||||
#: draw/models.py:441
|
||||
msgid "passage index"
|
||||
msgstr "numéro de passage"
|
||||
|
||||
#: draw/models.py:436
|
||||
#: draw/models.py:442
|
||||
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:444
|
||||
#: draw/models.py:450
|
||||
msgid "choose index"
|
||||
msgstr "numéro de choix"
|
||||
|
||||
#: draw/models.py:445
|
||||
#: draw/models.py:451
|
||||
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:451 draw/models.py:474 participation/models.py:444
|
||||
#: participation/models.py:617
|
||||
#: draw/models.py:457 draw/models.py:480 participation/models.py:444
|
||||
#: participation/models.py:628
|
||||
#, python-brace-format
|
||||
msgid "Problem #{problem}"
|
||||
msgstr "Problème n°{problem}"
|
||||
|
||||
#: draw/models.py:455 draw/models.py:478
|
||||
#: draw/models.py:461 draw/models.py:484
|
||||
msgid "accepted problem"
|
||||
msgstr "problème accepté"
|
||||
|
||||
#: draw/models.py:462
|
||||
#: draw/models.py:468
|
||||
msgid "passage dice"
|
||||
msgstr "dé d'ordre de passage"
|
||||
|
||||
#: draw/models.py:469
|
||||
#: draw/models.py:475
|
||||
msgid "choice dice"
|
||||
msgstr "dé d'ordre de choix"
|
||||
|
||||
#: draw/models.py:483
|
||||
#: draw/models.py:489
|
||||
msgid "rejected problems"
|
||||
msgstr "problèmes rejetés"
|
||||
|
||||
#: draw/models.py:509
|
||||
#: draw/models.py:518
|
||||
#, 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:515
|
||||
#: draw/models.py:524
|
||||
msgid "team draw"
|
||||
msgstr "tirage d'équipe"
|
||||
|
||||
#: draw/models.py:516
|
||||
#: draw/models.py:525
|
||||
msgid "team draws"
|
||||
msgstr "tirages d'équipe"
|
||||
|
||||
#: draw/templates/draw/index.html:31
|
||||
msgid "You don't participate to any tournament."
|
||||
msgstr "Vous ne participez pas à un tournoi."
|
||||
|
||||
#: draw/templates/draw/tournament_content.html:13
|
||||
msgid "Configuration:"
|
||||
msgstr "Configuration :"
|
||||
|
@ -360,6 +364,11 @@ msgstr "Êtes-vous sûr·e de vouloir annuler le tirage au sort ?"
|
|||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: draw/views.py:31 participation/views.py:159 participation/views.py:456
|
||||
#: participation/views.py:490
|
||||
msgid "You are not in a team."
|
||||
msgstr "Vous n'êtes pas dans une équipe."
|
||||
|
||||
#: logs/apps.py:11
|
||||
msgid "Logs"
|
||||
msgstr "Logs"
|
||||
|
@ -439,16 +448,16 @@ msgid "defender"
|
|||
msgstr "défenseur⋅se"
|
||||
|
||||
#: participation/admin.py:61 participation/models.py:458
|
||||
#: participation/models.py:660
|
||||
#: participation/models.py:671
|
||||
msgid "opponent"
|
||||
msgstr "opposant⋅e"
|
||||
|
||||
#: participation/admin.py:65 participation/models.py:465
|
||||
#: participation/models.py:661
|
||||
#: participation/models.py:672
|
||||
msgid "reporter"
|
||||
msgstr "rapporteur⋅e"
|
||||
|
||||
#: participation/admin.py:120 participation/models.py:615
|
||||
#: participation/admin.py:120 participation/models.py:626
|
||||
msgid "problem"
|
||||
msgstr "numéro de problème"
|
||||
|
||||
|
@ -468,16 +477,16 @@ msgstr "Ce trigramme est déjà utilisé."
|
|||
msgid "No team was found with this access code."
|
||||
msgstr "Aucune équipe n'a été trouvée avec ce code d'accès."
|
||||
|
||||
#: participation/forms.py:84 participation/forms.py:334
|
||||
#: registration/forms.py:113 registration/forms.py:135
|
||||
#: registration/forms.py:157 registration/forms.py:179
|
||||
#: registration/forms.py:224
|
||||
#: participation/forms.py:84 participation/forms.py:343
|
||||
#: registration/forms.py:122 registration/forms.py:144
|
||||
#: registration/forms.py:166 registration/forms.py:188
|
||||
#: registration/forms.py:233
|
||||
msgid "The uploaded file size must be under 2 Mo."
|
||||
msgstr "Le fichier envoyé doit peser moins de 2 Mo."
|
||||
|
||||
#: participation/forms.py:86 registration/forms.py:115
|
||||
#: registration/forms.py:137 registration/forms.py:159
|
||||
#: registration/forms.py:181 registration/forms.py:226
|
||||
#: participation/forms.py:86 registration/forms.py:124
|
||||
#: registration/forms.py:146 registration/forms.py:168
|
||||
#: registration/forms.py:190 registration/forms.py:235
|
||||
msgid "The uploaded file must be a PDF, PNG of JPEG file."
|
||||
msgstr "Le fichier envoyé doit être au format PDF, PNG ou JPEG."
|
||||
|
||||
|
@ -493,7 +502,7 @@ msgstr "Message à adresser à l'équipe :"
|
|||
msgid "The uploaded file size must be under 5 Mo."
|
||||
msgstr "Le fichier envoyé doit peser moins de 5 Mo."
|
||||
|
||||
#: participation/forms.py:156 participation/forms.py:336
|
||||
#: participation/forms.py:156 participation/forms.py:345
|
||||
msgid "The uploaded file must be a PDF file."
|
||||
msgstr "Le fichier envoyé doit être au format PDF."
|
||||
|
||||
|
@ -512,6 +521,7 @@ msgid "Add"
|
|||
msgstr "Ajouter"
|
||||
|
||||
#: participation/forms.py:238 registration/forms.py:35 registration/forms.py:60
|
||||
#: registration/forms.py:91
|
||||
msgid "This email address is already used."
|
||||
msgstr "Cette adresse e-mail est déjà utilisée."
|
||||
|
||||
|
@ -519,27 +529,31 @@ msgstr "Cette adresse e-mail est déjà utilisée."
|
|||
msgid "CSV file:"
|
||||
msgstr "Tableur au format CSV :"
|
||||
|
||||
#: participation/forms.py:265
|
||||
#: participation/forms.py:266
|
||||
msgid ""
|
||||
"This file contains non-UTF-8 content. Please send your sheet as a CSV file."
|
||||
msgstr ""
|
||||
"Ce fichier contient des éléments non-UTF-8. Merci d'envoyer votre tableur au "
|
||||
"format CSV."
|
||||
|
||||
#: participation/forms.py:292
|
||||
#: participation/forms.py:281
|
||||
msgid "Can't determine the pool size. Are you sure your file is correct?"
|
||||
msgstr "Impossible de déterminer la taille de la poule. Êtes-vous sûr⋅e que le fichier est correct ?"
|
||||
|
||||
#: participation/forms.py:301
|
||||
msgid "The following note is higher of the maximum expected value:"
|
||||
msgstr "La note suivante est supérieure au maximum attendu :"
|
||||
|
||||
#: participation/forms.py:300
|
||||
#: participation/forms.py:309
|
||||
msgid "The following user was not found:"
|
||||
msgstr "L'utilisateur⋅rice suivant n'a pas été trouvé :"
|
||||
|
||||
#: participation/forms.py:317
|
||||
#: participation/forms.py:326
|
||||
msgid "The defender, the opponent and the reporter must be different."
|
||||
msgstr ""
|
||||
"Læ défenseur⋅se, l'opposant⋅e et læ rapporteur⋅e doivent être différent⋅es."
|
||||
|
||||
#: participation/forms.py:321
|
||||
#: participation/forms.py:330
|
||||
msgid "This defender did not work on this problem."
|
||||
msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème."
|
||||
|
||||
|
@ -722,124 +736,124 @@ 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:547 participation/models.py:550
|
||||
#: participation/models.py:553 participation/models.py:556
|
||||
#: participation/models.py:558 participation/models.py:561
|
||||
#: participation/models.py:564 participation/models.py:567
|
||||
#, 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:561
|
||||
#: participation/models.py:572
|
||||
#, python-brace-format
|
||||
msgid "Passage of {defender} for problem {problem}"
|
||||
msgstr "Passage de {defender} pour le problème {problem}"
|
||||
|
||||
#: participation/models.py:565 participation/models.py:574
|
||||
#: participation/models.py:655 participation/models.py:697
|
||||
#: participation/models.py:576 participation/models.py:585
|
||||
#: participation/models.py:666 participation/models.py:708
|
||||
msgid "passage"
|
||||
msgstr "passage"
|
||||
|
||||
#: participation/models.py:566
|
||||
#: participation/models.py:577
|
||||
msgid "passages"
|
||||
msgstr "passages"
|
||||
|
||||
#: participation/models.py:585
|
||||
#: participation/models.py:596
|
||||
msgid "difference"
|
||||
msgstr "différence"
|
||||
|
||||
#: participation/models.py:586
|
||||
#: participation/models.py:597
|
||||
msgid "Score to add/remove on the final score"
|
||||
msgstr "Score à ajouter/retrancher au score final"
|
||||
|
||||
#: participation/models.py:593
|
||||
#: participation/models.py:604
|
||||
msgid "tweak"
|
||||
msgstr "harmonisation"
|
||||
|
||||
#: participation/models.py:594
|
||||
#: participation/models.py:605
|
||||
msgid "tweaks"
|
||||
msgstr "harmonisations"
|
||||
|
||||
#: participation/models.py:622
|
||||
#: participation/models.py:633
|
||||
msgid "solution for the final tournament"
|
||||
msgstr "solution pour la finale"
|
||||
|
||||
#: participation/models.py:627 participation/models.py:666
|
||||
#: participation/models.py:638 participation/models.py:677
|
||||
msgid "file"
|
||||
msgstr "fichier"
|
||||
|
||||
#: participation/models.py:633
|
||||
#: participation/models.py:644
|
||||
#, 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:635
|
||||
#: participation/models.py:646
|
||||
msgid "for final"
|
||||
msgstr "pour la finale"
|
||||
|
||||
#: participation/models.py:638
|
||||
#: participation/models.py:649
|
||||
msgid "solution"
|
||||
msgstr "solution"
|
||||
|
||||
#: participation/models.py:639
|
||||
#: participation/models.py:650
|
||||
msgid "solutions"
|
||||
msgstr "solutions"
|
||||
|
||||
#: participation/models.py:672
|
||||
#: participation/models.py:683
|
||||
#, 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:680
|
||||
#: participation/models.py:691
|
||||
msgid "synthesis"
|
||||
msgstr "note de synthèse"
|
||||
|
||||
#: participation/models.py:681
|
||||
#: participation/models.py:692
|
||||
msgid "syntheses"
|
||||
msgstr "notes de synthèse"
|
||||
|
||||
#: participation/models.py:690
|
||||
#: participation/models.py:701
|
||||
msgid "jury"
|
||||
msgstr "jury"
|
||||
|
||||
#: participation/models.py:702
|
||||
#: participation/models.py:713
|
||||
msgid "defender writing note"
|
||||
msgstr "note d'écrit de læ défenseur⋅se"
|
||||
|
||||
#: participation/models.py:708
|
||||
#: participation/models.py:719
|
||||
msgid "defender oral note"
|
||||
msgstr "note d'oral de læ défenseur⋅se"
|
||||
|
||||
#: participation/models.py:714
|
||||
#: participation/models.py:725
|
||||
msgid "opponent writing note"
|
||||
msgstr "note d'écrit de l'opposant⋅e"
|
||||
|
||||
#: participation/models.py:720
|
||||
#: participation/models.py:731
|
||||
msgid "opponent oral note"
|
||||
msgstr "note d'oral de l'opposant⋅e"
|
||||
|
||||
#: participation/models.py:726
|
||||
#: participation/models.py:737
|
||||
msgid "reporter writing note"
|
||||
msgstr "note d'écrit de læ rapporteur⋅e"
|
||||
|
||||
#: participation/models.py:732
|
||||
#: participation/models.py:743
|
||||
msgid "reporter oral note"
|
||||
msgstr "note d'oral de læ rapporteur⋅e"
|
||||
|
||||
#: participation/models.py:738
|
||||
#: participation/models.py:749
|
||||
msgid "observer note"
|
||||
msgstr "note de l'observateur⋅rice"
|
||||
|
||||
#: participation/models.py:757
|
||||
#: participation/models.py:778
|
||||
#, python-brace-format
|
||||
msgid "Notes of {jury} for {passage}"
|
||||
msgstr "Notes de {jury} pour le {passage}"
|
||||
|
||||
#: participation/models.py:764
|
||||
#: participation/models.py:785
|
||||
msgid "note"
|
||||
msgstr "note"
|
||||
|
||||
#: participation/models.py:765
|
||||
#: participation/models.py:786
|
||||
msgid "notes"
|
||||
msgstr "notes"
|
||||
|
||||
|
@ -909,12 +923,12 @@ msgstr ""
|
|||
|
||||
#: participation/templates/participation/create_team.html:11
|
||||
#: participation/templates/participation/tournament_form.html:14
|
||||
#: tfjm/templates/base.html:255
|
||||
#: tfjm/templates/base.html:257
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
|
||||
#: participation/templates/participation/join_team.html:11
|
||||
#: tfjm/templates/base.html:250
|
||||
#: tfjm/templates/base.html:252
|
||||
msgid "Join"
|
||||
msgstr "Rejoindre"
|
||||
|
||||
|
@ -926,8 +940,8 @@ msgstr "Rejoindre"
|
|||
#: participation/templates/participation/pool_detail.html:88
|
||||
#: participation/templates/participation/pool_detail.html:106
|
||||
#: participation/templates/participation/pool_detail.html:111
|
||||
#: participation/templates/participation/team_detail.html:126
|
||||
#: participation/templates/participation/team_detail.html:190
|
||||
#: participation/templates/participation/team_detail.html:128
|
||||
#: participation/templates/participation/team_detail.html:192
|
||||
#: participation/templates/participation/tournament_form.html:12
|
||||
#: participation/templates/participation/update_team.html:12
|
||||
#: registration/templates/registration/payment_form.html:49
|
||||
|
@ -990,9 +1004,9 @@ msgstr "Envoyer une solution"
|
|||
#: participation/templates/participation/participation_detail.html:59
|
||||
#: participation/templates/participation/passage_detail.html:132
|
||||
#: participation/templates/participation/pool_detail.html:116
|
||||
#: participation/templates/participation/team_detail.html:185
|
||||
#: participation/templates/participation/team_detail.html:187
|
||||
#: participation/templates/participation/upload_motivation_letter.html:13
|
||||
#: participation/templates/participation/upload_notes.html:24
|
||||
#: participation/templates/participation/upload_notes.html:17
|
||||
#: participation/templates/participation/upload_solution.html:11
|
||||
#: participation/templates/participation/upload_synthesis.html:16
|
||||
#: registration/templates/registration/upload_health_sheet.html:17
|
||||
|
@ -1275,21 +1289,21 @@ msgstr "Télécharger"
|
|||
msgid "Replace"
|
||||
msgstr "Remplacer"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:120
|
||||
#: participation/templates/participation/team_detail.html:121
|
||||
msgid "Download all submitted authorizations"
|
||||
msgstr "Télécharger toutes les autorisations soumises"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:128
|
||||
#: participation/templates/participation/team_detail.html:195
|
||||
#: participation/templates/participation/team_detail.html:130
|
||||
#: participation/templates/participation/team_detail.html:197
|
||||
#: participation/templates/participation/team_leave.html:11
|
||||
msgid "Leave"
|
||||
msgstr "Quitter"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:138
|
||||
#: participation/templates/participation/team_detail.html:140
|
||||
msgid "Access to team participation"
|
||||
msgstr "Accéder à la participation de l'équipe"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:145
|
||||
#: participation/templates/participation/team_detail.html:147
|
||||
msgid ""
|
||||
"Your team has at least 4 members and a coach and all authorizations were "
|
||||
"given: the team can be validated."
|
||||
|
@ -1297,11 +1311,11 @@ msgstr ""
|
|||
"Votre équipe contient au moins 4 personnes et un⋅e encadrant⋅e et toutes les "
|
||||
"autorisations ont été données : l'équipe peut être validée."
|
||||
|
||||
#: participation/templates/participation/team_detail.html:150
|
||||
#: participation/templates/participation/team_detail.html:152
|
||||
msgid "Submit my team to validation"
|
||||
msgstr "Soumettre mon équipe à validation"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:156
|
||||
#: participation/templates/participation/team_detail.html:158
|
||||
msgid ""
|
||||
"Your team must be composed of 4 members and a coach and each member must "
|
||||
"upload their authorizations and confirm its email address."
|
||||
|
@ -1309,15 +1323,15 @@ msgstr ""
|
|||
"Votre équipe doit être composée d'au moins 4 membres et un⋅e encadrant⋅e et "
|
||||
"chaque membre doit envoyer ses autorisations et confirmé son adresse e-mail."
|
||||
|
||||
#: participation/templates/participation/team_detail.html:161
|
||||
#: participation/templates/participation/team_detail.html:163
|
||||
msgid "This team didn't ask for validation yet."
|
||||
msgstr "L'équipe n'a pas encore demandé à être validée."
|
||||
|
||||
#: participation/templates/participation/team_detail.html:167
|
||||
#: participation/templates/participation/team_detail.html:169
|
||||
msgid "Your validation is pending."
|
||||
msgstr "Votre validation est en attente."
|
||||
|
||||
#: participation/templates/participation/team_detail.html:171
|
||||
#: participation/templates/participation/team_detail.html:173
|
||||
msgid ""
|
||||
"The team requested to be validated. You may now control the authorizations "
|
||||
"and confirm that they can participate."
|
||||
|
@ -1325,25 +1339,25 @@ msgstr ""
|
|||
"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
|
||||
"différentes autorisations et confirmer qu'elle peut participer."
|
||||
|
||||
#: participation/templates/participation/team_detail.html:177
|
||||
#: participation/templates/participation/team_detail.html:179
|
||||
msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:178
|
||||
#: participation/templates/participation/team_detail.html:180
|
||||
msgid "Invalidate"
|
||||
msgstr "Invalider"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:184
|
||||
#: participation/views.py:337
|
||||
#: participation/templates/participation/team_detail.html:186
|
||||
#: participation/views.py:341
|
||||
msgid "Upload motivation letter"
|
||||
msgstr "Envoyer la lettre de motivation"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:189
|
||||
#: participation/templates/participation/team_detail.html:191
|
||||
msgid "Update team"
|
||||
msgstr "Modifier l'équipe"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:194
|
||||
#: participation/views.py:446
|
||||
#: participation/templates/participation/team_detail.html:196
|
||||
#: participation/views.py:450
|
||||
msgid "Leave team"
|
||||
msgstr "Quitter l'équipe"
|
||||
|
||||
|
@ -1352,7 +1366,7 @@ msgid "Are you sure that you want to leave this team?"
|
|||
msgstr "Êtes-vous sûr·e de vouloir quitter cette équipe ?"
|
||||
|
||||
#: participation/templates/participation/team_list.html:6
|
||||
#: tfjm/templates/base.html:243
|
||||
#: tfjm/templates/base.html:245
|
||||
msgid "All teams"
|
||||
msgstr "Toutes les équipes"
|
||||
|
||||
|
@ -1435,7 +1449,7 @@ msgid "Add pool"
|
|||
msgstr "Ajouter une poule"
|
||||
|
||||
#: participation/templates/participation/tournament_list.html:6
|
||||
#: tfjm/templates/base.html:239
|
||||
#: tfjm/templates/base.html:241
|
||||
msgid "All tournaments"
|
||||
msgstr "Tous les tournois"
|
||||
|
||||
|
@ -1447,7 +1461,7 @@ msgstr "Ajouter un tournoi"
|
|||
msgid "Back to the team detail"
|
||||
msgstr "Retour aux détails de l'utilisateur⋅rice"
|
||||
|
||||
#: participation/templates/participation/upload_notes.html:18
|
||||
#: participation/templates/participation/upload_notes.html:11
|
||||
msgid "Download empty notation sheet"
|
||||
msgstr "Télécharger la fiche de notation vierge"
|
||||
|
||||
|
@ -1455,49 +1469,44 @@ msgstr "Télécharger la fiche de notation vierge"
|
|||
msgid "Templates:"
|
||||
msgstr "Modèles :"
|
||||
|
||||
#: participation/views.py:48 tfjm/templates/base.html:73
|
||||
#: tfjm/templates/base.html:254
|
||||
#: participation/views.py:52 tfjm/templates/base.html:73
|
||||
#: tfjm/templates/base.html:256
|
||||
msgid "Create team"
|
||||
msgstr "Créer une équipe"
|
||||
|
||||
#: participation/views.py:57 participation/views.py:102
|
||||
#: participation/views.py:61 participation/views.py:106
|
||||
msgid "You don't participate, so you can't create a team."
|
||||
msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
|
||||
|
||||
#: participation/views.py:59 participation/views.py:104
|
||||
#: participation/views.py:63 participation/views.py:108
|
||||
msgid "You are already in a team."
|
||||
msgstr "Vous êtes déjà dans une équipe."
|
||||
|
||||
#: participation/views.py:93 tfjm/templates/base.html:78
|
||||
#: tfjm/templates/base.html:249
|
||||
#: participation/views.py:97 tfjm/templates/base.html:78
|
||||
#: tfjm/templates/base.html:251
|
||||
msgid "Join team"
|
||||
msgstr "Rejoindre une équipe"
|
||||
|
||||
#: participation/views.py:155 participation/views.py:452
|
||||
#: participation/views.py:486
|
||||
msgid "You are not in a team."
|
||||
msgstr "Vous n'êtes pas dans une équipe."
|
||||
|
||||
#: participation/views.py:156 participation/views.py:487
|
||||
#: participation/views.py:160 participation/views.py:491
|
||||
msgid "You don't participate, so you don't have any team."
|
||||
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
|
||||
|
||||
#: participation/views.py:182
|
||||
#: participation/views.py:186
|
||||
#, python-brace-format
|
||||
msgid "Detail of team {trigram}"
|
||||
msgstr "Détails de l'équipe {trigram}"
|
||||
|
||||
#: participation/views.py:219
|
||||
#: participation/views.py:223
|
||||
msgid "You don't participate, so you can't request the validation of the team."
|
||||
msgstr ""
|
||||
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
|
||||
"l'équipe."
|
||||
|
||||
#: participation/views.py:222
|
||||
#: participation/views.py:226
|
||||
msgid "The validation of the team is already done or pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: participation/views.py:225
|
||||
#: participation/views.py:229
|
||||
msgid ""
|
||||
"The team can't be validated: missing email address confirmations, "
|
||||
"authorizations, people, motivation letter or the tournament is not set."
|
||||
|
@ -1506,93 +1515,93 @@ msgstr ""
|
|||
"d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
|
||||
"de motivation, soit le tournoi n'a pas été choisi."
|
||||
|
||||
#: participation/views.py:247
|
||||
#: participation/views.py:251
|
||||
msgid "You are not an organizer of the tournament."
|
||||
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice du tournoi."
|
||||
|
||||
#: participation/views.py:250
|
||||
#: participation/views.py:254
|
||||
msgid "This team has no pending validation."
|
||||
msgstr "L'équipe n'a pas de validation en attente."
|
||||
|
||||
#: participation/views.py:280
|
||||
#: participation/views.py:284
|
||||
msgid "You must specify if you validate the registration or not."
|
||||
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
|
||||
|
||||
#: participation/views.py:315
|
||||
#: participation/views.py:319
|
||||
#, python-brace-format
|
||||
msgid "Update team {trigram}"
|
||||
msgstr "Mise à jour de l'équipe {trigram}"
|
||||
|
||||
#: participation/views.py:376 participation/views.py:432
|
||||
#: participation/views.py:380 participation/views.py:436
|
||||
#, python-brace-format
|
||||
msgid "Motivation letter of {team}.{ext}"
|
||||
msgstr "Lettre de motivation de {team}.{ext}"
|
||||
|
||||
#: participation/views.py:407
|
||||
#: participation/views.py:411
|
||||
#, python-brace-format
|
||||
msgid "Photo authorization of {participant}.{ext}"
|
||||
msgstr "Autorisation de droit à l'image de {participant}.{ext}"
|
||||
|
||||
#: participation/views.py:413
|
||||
#: participation/views.py:417
|
||||
#, python-brace-format
|
||||
msgid "Parental authorization of {participant}.{ext}"
|
||||
msgstr "Autorisation parentale de {participant}.{ext}"
|
||||
|
||||
#: participation/views.py:420
|
||||
#: participation/views.py:424
|
||||
#, python-brace-format
|
||||
msgid "Health sheet of {participant}.{ext}"
|
||||
msgstr "Fiche sanitaire de {participant}.{ext}"
|
||||
|
||||
#: participation/views.py:426
|
||||
#: participation/views.py:430
|
||||
#, python-brace-format
|
||||
msgid "Vaccine sheet of {participant}.{ext}"
|
||||
msgstr "Carnet de vaccination de {participant}.{ext}"
|
||||
|
||||
#: participation/views.py:436
|
||||
#: participation/views.py:440
|
||||
#, python-brace-format
|
||||
msgid "Photo authorizations of team {trigram}.zip"
|
||||
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
|
||||
|
||||
#: participation/views.py:454
|
||||
#: participation/views.py:458
|
||||
msgid "The team is already validated or the validation is pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: participation/views.py:501
|
||||
#: participation/views.py:505
|
||||
msgid "The team is not validated yet."
|
||||
msgstr "L'équipe n'est pas encore validée."
|
||||
|
||||
#: participation/views.py:515
|
||||
#: participation/views.py:519
|
||||
#, python-brace-format
|
||||
msgid "Participation of team {trigram}"
|
||||
msgstr "Participation de l'équipe {trigram}"
|
||||
|
||||
#: participation/views.py:643
|
||||
#: participation/views.py:647
|
||||
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:734
|
||||
#: participation/views.py:738
|
||||
#, python-brace-format
|
||||
msgid "Jurys of {pool}"
|
||||
msgstr "Juré⋅es de la {pool}"
|
||||
|
||||
#: participation/views.py:761
|
||||
#: participation/views.py:765
|
||||
msgid "New TFJM² jury account"
|
||||
msgstr "Nouveau compte de juré⋅e pour le TFJM²"
|
||||
|
||||
#: participation/views.py:774
|
||||
#: participation/views.py:778
|
||||
#, 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:810
|
||||
#: participation/views.py:814
|
||||
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:818
|
||||
#: participation/views.py:824
|
||||
msgid "Notes were successfully uploaded."
|
||||
msgstr "Les notes ont bien été envoyées."
|
||||
|
||||
#: participation/views.py:979
|
||||
#: participation/views.py:1488
|
||||
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."
|
||||
|
||||
|
@ -1622,11 +1631,11 @@ msgstr "participant⋅e"
|
|||
msgid "coach"
|
||||
msgstr "encadrant⋅e"
|
||||
|
||||
#: registration/forms.py:218
|
||||
#: registration/forms.py:227
|
||||
msgid "Pending"
|
||||
msgstr "En attente"
|
||||
|
||||
#: registration/forms.py:234
|
||||
#: registration/forms.py:243
|
||||
msgid "You must upload your scholarship attestation."
|
||||
msgstr "Vous devez envoyer votre attestation de bourse."
|
||||
|
||||
|
@ -1966,8 +1975,8 @@ msgid "Your password has been set. You may go ahead and log in now."
|
|||
msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
|
||||
|
||||
#: registration/templates/registration/password_reset_complete.html:10
|
||||
#: tfjm/templates/base.html:133 tfjm/templates/base.html:259
|
||||
#: tfjm/templates/base.html:260 tfjm/templates/registration/login.html:7
|
||||
#: tfjm/templates/base.html:135 tfjm/templates/base.html:261
|
||||
#: tfjm/templates/base.html:262 tfjm/templates/registration/login.html:7
|
||||
#: tfjm/templates/registration/login.html:8
|
||||
#: tfjm/templates/registration/login.html:25
|
||||
msgid "Log in"
|
||||
|
@ -2382,35 +2391,35 @@ msgstr "Mon équipe"
|
|||
msgid "My participation"
|
||||
msgstr "Ma participation"
|
||||
|
||||
#: tfjm/templates/base.html:103
|
||||
#: tfjm/templates/base.html:105
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: tfjm/templates/base.html:107
|
||||
#: tfjm/templates/base.html:109
|
||||
msgid "Administration"
|
||||
msgstr "Administration"
|
||||
|
||||
#: tfjm/templates/base.html:115
|
||||
#: tfjm/templates/base.html:117
|
||||
msgid "Search…"
|
||||
msgstr "Chercher…"
|
||||
|
||||
#: tfjm/templates/base.html:124
|
||||
#: tfjm/templates/base.html:126
|
||||
msgid "Return to admin view"
|
||||
msgstr "Retourner à l'interface administrateur⋅rice"
|
||||
|
||||
#: tfjm/templates/base.html:129
|
||||
#: tfjm/templates/base.html:131
|
||||
msgid "Register"
|
||||
msgstr "S'inscrire"
|
||||
|
||||
#: tfjm/templates/base.html:145
|
||||
#: tfjm/templates/base.html:147
|
||||
msgid "My account"
|
||||
msgstr "Mon compte"
|
||||
|
||||
#: tfjm/templates/base.html:150
|
||||
#: tfjm/templates/base.html:152
|
||||
msgid "Log out"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: tfjm/templates/base.html:168
|
||||
#: tfjm/templates/base.html:170
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Your email address is not validated. Please click on the link you received "
|
||||
|
@ -2421,15 +2430,15 @@ msgstr ""
|
|||
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a "
|
||||
"href=\"%(send_email_url)s\">ce lien</a>."
|
||||
|
||||
#: tfjm/templates/base.html:197
|
||||
#: tfjm/templates/base.html:199
|
||||
msgid "Contact us"
|
||||
msgstr "Nous contacter"
|
||||
|
||||
#: tfjm/templates/base.html:224
|
||||
#: tfjm/templates/base.html:226
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: tfjm/templates/base.html:246
|
||||
#: tfjm/templates/base.html:248
|
||||
msgid "Search results"
|
||||
msgstr "Résultats de la recherche"
|
||||
|
||||
|
|
|
@ -92,11 +92,13 @@
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'draw:index' %}">
|
||||
<i class="fas fa-archive"></i> {% trans "Draw" %}
|
||||
</a>
|
||||
</li>
|
||||
{% if user.is_volunteer or user.registration.team %}
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url 'draw:index' %}">
|
||||
<i class="fas fa-archive"></i> {% trans "Draw" %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{% url "participation:chat" %}">
|
||||
|
|
Loading…
Reference in New Issue