1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-02-11 10:21:19 +00:00

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:
Emmy D'Anello 2023-04-10 10:02:37 +02:00
parent a240d7cad5
commit 3d7a39a593
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 196 additions and 175 deletions

View File

@ -1,6 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load static %} {% load static %}
{% load i18n %}
{% block content %} {% block content %}
{# The navbar to select the tournament #} {# The navbar to select the tournament #}
@ -25,6 +26,10 @@
aria-labelledby="tab-{{ tournament.id }}" tabindex="0"> aria-labelledby="tab-{{ tournament.id }}" tabindex="0">
{% include "draw/tournament_content.html" with tournament=tournament %} {% include "draw/tournament_content.html" with tournament=tournament %}
</div> </div>
{% else %}
<div class="alert alert-warning">
{% trans "You don't participate to any tournament." %}
</div>
{% endfor %} {% endfor %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -3,6 +3,8 @@
from django.conf import settings from django.conf import settings
from django.contrib.auth.mixins import LoginRequiredMixin 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 django.views.generic import TemplateView
from participation.models import Tournament from participation.models import Tournament
@ -25,8 +27,11 @@ class DisplayView(LoginRequiredMixin, TemplateView):
# A volunteer can see their tournaments # A volunteer can see their tournaments
tournaments = reg.interesting_tournaments tournaments = reg.interesting_tournaments
else: 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 # 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: if reg.team.participation.final:
tournaments.append(Tournament.final_tournament()) tournaments.append(Tournament.final_tournament())

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TFJM\n" "Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n" "Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -33,12 +33,12 @@ msgstr "équipes"
msgid "tournament" msgid "tournament"
msgstr "tournoi" 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 #: participation/models.py:355
msgid "round" msgid "round"
msgstr "tour" msgstr "tour"
#: draw/apps.py:10 tfjm/templates/base.html:97 #: draw/apps.py:10 tfjm/templates/base.html:98
msgid "Draw" msgid "Draw"
msgstr "Tirage au sort" msgstr "Tirage au sort"
@ -46,64 +46,64 @@ msgstr "Tirage au sort"
msgid "You are not an organizer." msgid "You are not an organizer."
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice." msgstr "Vous n'êtes pas un⋅e organisateur⋅rice."
#: draw/consumers.py:151 #: draw/consumers.py:144
msgid "The draw is already started." msgid "The draw is already started."
msgstr "Le tirage a déjà commencé." msgstr "Le tirage a déjà commencé."
#: draw/consumers.py:157 #: draw/consumers.py:150
msgid "Invalid format" msgid "Invalid format"
msgstr "Format invalide" msgstr "Format invalide"
#: draw/consumers.py:162 #: draw/consumers.py:155
#, python-brace-format #, python-brace-format
msgid "The sum must be equal to the number of teams: expected {len}, got {sum}" msgid "The sum must be equal to the number of teams: expected {len}, got {sum}"
msgstr "" msgstr ""
"La somme doit être égale au nombre d'équipes : attendu {len}, obtenu {sum}" "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." 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." 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!" msgid "Draw started!"
msgstr "Le tirage a commencé !" msgstr "Le tirage a commencé !"
#: draw/consumers.py:215 #: draw/consumers.py:208
#, python-brace-format #, python-brace-format
msgid "The draw for the tournament {tournament} will start." msgid "The draw for the tournament {tournament} will start."
msgstr "Le tirage au sort du tournoi {tournament} va commencer." 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:219 draw/consumers.py:244 draw/consumers.py:578
#: draw/consumers.py:774 draw/consumers.py:856 draw/consumers.py:873 #: draw/consumers.py:767 draw/consumers.py:849 draw/consumers.py:866
#: draw/consumers.py:943 draw/templates/draw/tournament_content.html:5 #: draw/consumers.py:936 draw/templates/draw/tournament_content.html:5
msgid "The draw has not started yet." msgid "The draw has not started yet."
msgstr "Le tirage au sort n'a pas encore commencé." msgstr "Le tirage au sort n'a pas encore commencé."
#: draw/consumers.py:238 #: draw/consumers.py:231
#, python-brace-format #, python-brace-format
msgid "The draw for the tournament {tournament} is aborted." msgid "The draw for the tournament {tournament} is aborted."
msgstr "Le tirage au sort du tournoi {tournament} est annulé." 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:271 draw/consumers.py:292 draw/consumers.py:524
#: draw/consumers.py:590 draw/consumers.py:779 #: draw/consumers.py:583 draw/consumers.py:772
msgid "This is not the time for this." msgid "This is not the time for this."
msgstr "Ce n'est pas le moment pour cela." 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." msgid "You've already launched the dice."
msgstr "Vous avez déjà lancé le dé." msgstr "Vous avez déjà lancé le dé."
#: draw/consumers.py:297 #: draw/consumers.py:290
msgid "It is not your turn." msgid "It is not your turn."
msgstr "Ce n'est pas votre tour." msgstr "Ce n'est pas votre tour."
#: draw/consumers.py:378 #: draw/consumers.py:371
#, python-brace-format #, python-brace-format
msgid "Dices from teams {teams} are identical. Please relaunch your dices." msgid "Dices from teams {teams} are identical. Please relaunch your dices."
msgstr "" msgstr ""
"Les dés des équipes {teams} sont identiques. Merci de relancer vos dés." "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." msgid "This is only available for the final tournament."
msgstr "Cela n'est possible que pour la finale." 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." msgid "The current pool where teams select their problems."
msgstr "La poule en cours, où les équipes choisissent leurs problèmes" msgstr "La poule en cours, où les équipes choisissent leurs problèmes"
#: draw/models.py:229 #: draw/models.py:232
msgid "rounds" msgid "rounds"
msgstr "tours" msgstr "tours"
#: draw/models.py:251 participation/models.py:369 #: draw/models.py:254 participation/models.py:369
msgid "letter" msgid "letter"
msgstr "lettre" msgstr "lettre"
#: draw/models.py:252 #: draw/models.py:255
msgid "The letter of the pool: A, B, C or D." msgid "The letter of the pool: A, B, C or D."
msgstr "La lettre de la poule : A, B, C ou 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 #: participation/templates/participation/tournament_detail.html:15
msgid "size" msgid "size"
msgstr "taille" msgstr "taille"
#: draw/models.py:258 #: draw/models.py:261
msgid "The number of teams in this pool, between 3 and 5." msgid "The number of teams in this pool, between 3 and 5."
msgstr "Le nombre d'équipes dans la poule, entre 3 et 5." msgstr "Le nombre d'équipes dans la poule, entre 3 et 5."
#: draw/models.py:267 #: draw/models.py:270
msgid "current team" msgid "current team"
msgstr "équipe actuelle" msgstr "équipe actuelle"
#: draw/models.py:268 #: draw/models.py:271
msgid "The current team that is selecting its problem." msgid "The current team that is selecting its problem."
msgstr "L'équipe qui est en train de choisir son problème." msgstr "L'équipe qui est en train de choisir son problème."
#: draw/models.py:277 #: draw/models.py:280
msgid "associated pool" msgid "associated pool"
msgstr "poule associée" msgstr "poule associée"
#: draw/models.py:278 #: draw/models.py:281
msgid "The full pool instance." msgid "The full pool instance."
msgstr "L'instance complète de la poule." msgstr "L'instance complète de la poule."
#: draw/models.py:398 #: draw/models.py:404
#, python-brace-format #, python-brace-format
msgid "Pool {letter}{number}" msgid "Pool {letter}{number}"
msgstr "Poule {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/admin.py:88 participation/models.py:421
#: participation/models.py:430 participation/tables.py:82 #: participation/models.py:430 participation/tables.py:82
msgid "pool" msgid "pool"
msgstr "poule" msgstr "poule"
#: draw/models.py:402 participation/models.py:422 #: draw/models.py:408 participation/models.py:422
msgid "pools" msgid "pools"
msgstr "poules" msgstr "poules"
#: draw/models.py:414 participation/models.py:342 participation/models.py:580 #: draw/models.py:420 participation/models.py:342 participation/models.py:591
#: participation/models.py:610 participation/models.py:648 #: participation/models.py:621 participation/models.py:659
msgid "participation" msgid "participation"
msgstr "participation" msgstr "participation"
#: draw/models.py:435 #: draw/models.py:441
msgid "passage index" msgid "passage index"
msgstr "numéro de passage" msgstr "numéro de passage"
#: draw/models.py:436 #: draw/models.py:442
msgid "" msgid ""
"The passage order in the pool, between 0 and the size of the pool minus 1." "The passage order in the pool, between 0 and the size of the pool minus 1."
msgstr "" msgstr ""
"L'ordre de passage dans la poule, de 0 à la taille de la poule moins 1." "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" msgid "choose index"
msgstr "numéro de choix" msgstr "numéro de choix"
#: draw/models.py:445 #: draw/models.py:451
msgid "" msgid ""
"The choice order in the pool, between 0 and the size of the pool minus 1." "The choice order in the pool, between 0 and the size of the pool minus 1."
msgstr "" msgstr ""
"L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1." "L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1."
#: draw/models.py:451 draw/models.py:474 participation/models.py:444 #: draw/models.py:457 draw/models.py:480 participation/models.py:444
#: participation/models.py:617 #: participation/models.py:628
#, python-brace-format #, python-brace-format
msgid "Problem #{problem}" msgid "Problem #{problem}"
msgstr "Problème n°{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" msgid "accepted problem"
msgstr "problème accepté" msgstr "problème accepté"
#: draw/models.py:462 #: draw/models.py:468
msgid "passage dice" msgid "passage dice"
msgstr "dé d'ordre de passage" msgstr "dé d'ordre de passage"
#: draw/models.py:469 #: draw/models.py:475
msgid "choice dice" msgid "choice dice"
msgstr "dé d'ordre de choix" msgstr "dé d'ordre de choix"
#: draw/models.py:483 #: draw/models.py:489
msgid "rejected problems" msgid "rejected problems"
msgstr "problèmes rejetés" msgstr "problèmes rejetés"
#: draw/models.py:509 #: draw/models.py:518
#, python-brace-format #, python-brace-format
msgid "Draw of the team {trigram} for the pool {letter}{number}" msgid "Draw of the team {trigram} for the pool {letter}{number}"
msgstr "Tirage de l'équipe {trigram} pour la poule {letter}{number}" msgstr "Tirage de l'équipe {trigram} pour la poule {letter}{number}"
#: draw/models.py:515 #: draw/models.py:524
msgid "team draw" msgid "team draw"
msgstr "tirage d'équipe" msgstr "tirage d'équipe"
#: draw/models.py:516 #: draw/models.py:525
msgid "team draws" msgid "team draws"
msgstr "tirages d'équipe" 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 #: draw/templates/draw/tournament_content.html:13
msgid "Configuration:" msgid "Configuration:"
msgstr "Configuration :" msgstr "Configuration :"
@ -360,6 +364,11 @@ msgstr "Êtes-vous sûr·e de vouloir annuler le tirage au sort ?"
msgid "Close" msgid "Close"
msgstr "Fermer" 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 #: logs/apps.py:11
msgid "Logs" msgid "Logs"
msgstr "Logs" msgstr "Logs"
@ -439,16 +448,16 @@ msgid "defender"
msgstr "défenseur⋅se" msgstr "défenseur⋅se"
#: participation/admin.py:61 participation/models.py:458 #: participation/admin.py:61 participation/models.py:458
#: participation/models.py:660 #: participation/models.py:671
msgid "opponent" msgid "opponent"
msgstr "opposant⋅e" msgstr "opposant⋅e"
#: participation/admin.py:65 participation/models.py:465 #: participation/admin.py:65 participation/models.py:465
#: participation/models.py:661 #: participation/models.py:672
msgid "reporter" msgid "reporter"
msgstr "rapporteur⋅e" msgstr "rapporteur⋅e"
#: participation/admin.py:120 participation/models.py:615 #: participation/admin.py:120 participation/models.py:626
msgid "problem" msgid "problem"
msgstr "numéro de problème" 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." msgid "No team was found with this access code."
msgstr "Aucune équipe n'a été trouvée avec ce code d'accès." msgstr "Aucune équipe n'a été trouvée avec ce code d'accès."
#: participation/forms.py:84 participation/forms.py:334 #: participation/forms.py:84 participation/forms.py:343
#: registration/forms.py:113 registration/forms.py:135 #: registration/forms.py:122 registration/forms.py:144
#: registration/forms.py:157 registration/forms.py:179 #: registration/forms.py:166 registration/forms.py:188
#: registration/forms.py:224 #: registration/forms.py:233
msgid "The uploaded file size must be under 2 Mo." msgid "The uploaded file size must be under 2 Mo."
msgstr "Le fichier envoyé doit peser moins de 2 Mo." msgstr "Le fichier envoyé doit peser moins de 2 Mo."
#: participation/forms.py:86 registration/forms.py:115 #: participation/forms.py:86 registration/forms.py:124
#: registration/forms.py:137 registration/forms.py:159 #: registration/forms.py:146 registration/forms.py:168
#: registration/forms.py:181 registration/forms.py:226 #: registration/forms.py:190 registration/forms.py:235
msgid "The uploaded file must be a PDF, PNG of JPEG file." msgid "The uploaded file must be a PDF, PNG of JPEG file."
msgstr "Le fichier envoyé doit être au format PDF, PNG ou JPEG." 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." msgid "The uploaded file size must be under 5 Mo."
msgstr "Le fichier envoyé doit peser moins de 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." msgid "The uploaded file must be a PDF file."
msgstr "Le fichier envoyé doit être au format PDF." msgstr "Le fichier envoyé doit être au format PDF."
@ -512,6 +521,7 @@ msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
#: participation/forms.py:238 registration/forms.py:35 registration/forms.py:60 #: participation/forms.py:238 registration/forms.py:35 registration/forms.py:60
#: registration/forms.py:91
msgid "This email address is already used." msgid "This email address is already used."
msgstr "Cette adresse e-mail est déjà utilisée." 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:" msgid "CSV file:"
msgstr "Tableur au format CSV :" msgstr "Tableur au format CSV :"
#: participation/forms.py:265 #: participation/forms.py:266
msgid "" msgid ""
"This file contains non-UTF-8 content. Please send your sheet as a CSV file." "This file contains non-UTF-8 content. Please send your sheet as a CSV file."
msgstr "" msgstr ""
"Ce fichier contient des éléments non-UTF-8. Merci d'envoyer votre tableur au " "Ce fichier contient des éléments non-UTF-8. Merci d'envoyer votre tableur au "
"format CSV." "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:" msgid "The following note is higher of the maximum expected value:"
msgstr "La note suivante est supérieure au maximum attendu :" 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:" msgid "The following user was not found:"
msgstr "L'utilisateur⋅rice suivant n'a pas été trouvé :" 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." msgid "The defender, the opponent and the reporter must be different."
msgstr "" msgstr ""
"Læ défenseur⋅se, l'opposant⋅e et læ rapporteur⋅e doivent être différent⋅es." "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." msgid "This defender did not work on this problem."
msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème." 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 " "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é." "coefficient 0.5 sur sa présentation orale par pénalité."
#: participation/models.py:547 participation/models.py:550 #: participation/models.py:558 participation/models.py:561
#: participation/models.py:553 participation/models.py:556 #: participation/models.py:564 participation/models.py:567
#, python-brace-format #, python-brace-format
msgid "Team {trigram} is not registered in the pool." msgid "Team {trigram} is not registered in the pool."
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule." msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
#: participation/models.py:561 #: participation/models.py:572
#, python-brace-format #, python-brace-format
msgid "Passage of {defender} for problem {problem}" msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}" msgstr "Passage de {defender} pour le problème {problem}"
#: participation/models.py:565 participation/models.py:574 #: participation/models.py:576 participation/models.py:585
#: participation/models.py:655 participation/models.py:697 #: participation/models.py:666 participation/models.py:708
msgid "passage" msgid "passage"
msgstr "passage" msgstr "passage"
#: participation/models.py:566 #: participation/models.py:577
msgid "passages" msgid "passages"
msgstr "passages" msgstr "passages"
#: participation/models.py:585 #: participation/models.py:596
msgid "difference" msgid "difference"
msgstr "différence" msgstr "différence"
#: participation/models.py:586 #: participation/models.py:597
msgid "Score to add/remove on the final score" msgid "Score to add/remove on the final score"
msgstr "Score à ajouter/retrancher au score final" msgstr "Score à ajouter/retrancher au score final"
#: participation/models.py:593 #: participation/models.py:604
msgid "tweak" msgid "tweak"
msgstr "harmonisation" msgstr "harmonisation"
#: participation/models.py:594 #: participation/models.py:605
msgid "tweaks" msgid "tweaks"
msgstr "harmonisations" msgstr "harmonisations"
#: participation/models.py:622 #: participation/models.py:633
msgid "solution for the final tournament" msgid "solution for the final tournament"
msgstr "solution pour la finale" msgstr "solution pour la finale"
#: participation/models.py:627 participation/models.py:666 #: participation/models.py:638 participation/models.py:677
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: participation/models.py:633 #: participation/models.py:644
#, python-brace-format #, python-brace-format
msgid "Solution of team {team} for problem {problem}" msgid "Solution of team {team} for problem {problem}"
msgstr "Solution de l'équipe {team} pour le problème {problem}" msgstr "Solution de l'équipe {team} pour le problème {problem}"
#: participation/models.py:635 #: participation/models.py:646
msgid "for final" msgid "for final"
msgstr "pour la finale" msgstr "pour la finale"
#: participation/models.py:638 #: participation/models.py:649
msgid "solution" msgid "solution"
msgstr "solution" msgstr "solution"
#: participation/models.py:639 #: participation/models.py:650
msgid "solutions" msgid "solutions"
msgstr "solutions" msgstr "solutions"
#: participation/models.py:672 #: participation/models.py:683
#, python-brace-format #, python-brace-format
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}" msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
msgstr "" msgstr ""
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème " "Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
"{problem} de {defender}" "{problem} de {defender}"
#: participation/models.py:680 #: participation/models.py:691
msgid "synthesis" msgid "synthesis"
msgstr "note de synthèse" msgstr "note de synthèse"
#: participation/models.py:681 #: participation/models.py:692
msgid "syntheses" msgid "syntheses"
msgstr "notes de synthèse" msgstr "notes de synthèse"
#: participation/models.py:690 #: participation/models.py:701
msgid "jury" msgid "jury"
msgstr "jury" msgstr "jury"
#: participation/models.py:702 #: participation/models.py:713
msgid "defender writing note" msgid "defender writing note"
msgstr "note d'écrit de læ défenseur⋅se" msgstr "note d'écrit de læ défenseur⋅se"
#: participation/models.py:708 #: participation/models.py:719
msgid "defender oral note" msgid "defender oral note"
msgstr "note d'oral de læ défenseur⋅se" msgstr "note d'oral de læ défenseur⋅se"
#: participation/models.py:714 #: participation/models.py:725
msgid "opponent writing note" msgid "opponent writing note"
msgstr "note d'écrit de l'opposant⋅e" msgstr "note d'écrit de l'opposant⋅e"
#: participation/models.py:720 #: participation/models.py:731
msgid "opponent oral note" msgid "opponent oral note"
msgstr "note d'oral de l'opposant⋅e" msgstr "note d'oral de l'opposant⋅e"
#: participation/models.py:726 #: participation/models.py:737
msgid "reporter writing note" msgid "reporter writing note"
msgstr "note d'écrit de læ rapporteur⋅e" msgstr "note d'écrit de læ rapporteur⋅e"
#: participation/models.py:732 #: participation/models.py:743
msgid "reporter oral note" msgid "reporter oral note"
msgstr "note d'oral de læ rapporteur⋅e" msgstr "note d'oral de læ rapporteur⋅e"
#: participation/models.py:738 #: participation/models.py:749
msgid "observer note" msgid "observer note"
msgstr "note de l'observateur⋅rice" msgstr "note de l'observateur⋅rice"
#: participation/models.py:757 #: participation/models.py:778
#, python-brace-format #, python-brace-format
msgid "Notes of {jury} for {passage}" msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}" msgstr "Notes de {jury} pour le {passage}"
#: participation/models.py:764 #: participation/models.py:785
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: participation/models.py:765 #: participation/models.py:786
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
@ -909,12 +923,12 @@ msgstr ""
#: participation/templates/participation/create_team.html:11 #: participation/templates/participation/create_team.html:11
#: participation/templates/participation/tournament_form.html:14 #: participation/templates/participation/tournament_form.html:14
#: tfjm/templates/base.html:255 #: tfjm/templates/base.html:257
msgid "Create" msgid "Create"
msgstr "Créer" msgstr "Créer"
#: participation/templates/participation/join_team.html:11 #: participation/templates/participation/join_team.html:11
#: tfjm/templates/base.html:250 #: tfjm/templates/base.html:252
msgid "Join" msgid "Join"
msgstr "Rejoindre" msgstr "Rejoindre"
@ -926,8 +940,8 @@ msgstr "Rejoindre"
#: participation/templates/participation/pool_detail.html:88 #: participation/templates/participation/pool_detail.html:88
#: participation/templates/participation/pool_detail.html:106 #: participation/templates/participation/pool_detail.html:106
#: participation/templates/participation/pool_detail.html:111 #: participation/templates/participation/pool_detail.html:111
#: participation/templates/participation/team_detail.html:126 #: participation/templates/participation/team_detail.html:128
#: participation/templates/participation/team_detail.html:190 #: participation/templates/participation/team_detail.html:192
#: participation/templates/participation/tournament_form.html:12 #: participation/templates/participation/tournament_form.html:12
#: participation/templates/participation/update_team.html:12 #: participation/templates/participation/update_team.html:12
#: registration/templates/registration/payment_form.html:49 #: 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/participation_detail.html:59
#: participation/templates/participation/passage_detail.html:132 #: participation/templates/participation/passage_detail.html:132
#: participation/templates/participation/pool_detail.html:116 #: 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_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_solution.html:11
#: participation/templates/participation/upload_synthesis.html:16 #: participation/templates/participation/upload_synthesis.html:16
#: registration/templates/registration/upload_health_sheet.html:17 #: registration/templates/registration/upload_health_sheet.html:17
@ -1275,21 +1289,21 @@ msgstr "Télécharger"
msgid "Replace" msgid "Replace"
msgstr "Remplacer" msgstr "Remplacer"
#: participation/templates/participation/team_detail.html:120 #: participation/templates/participation/team_detail.html:121
msgid "Download all submitted authorizations" msgid "Download all submitted authorizations"
msgstr "Télécharger toutes les autorisations soumises" msgstr "Télécharger toutes les autorisations soumises"
#: participation/templates/participation/team_detail.html:128 #: participation/templates/participation/team_detail.html:130
#: participation/templates/participation/team_detail.html:195 #: participation/templates/participation/team_detail.html:197
#: participation/templates/participation/team_leave.html:11 #: participation/templates/participation/team_leave.html:11
msgid "Leave" msgid "Leave"
msgstr "Quitter" msgstr "Quitter"
#: participation/templates/participation/team_detail.html:138 #: participation/templates/participation/team_detail.html:140
msgid "Access to team participation" msgid "Access to team participation"
msgstr "Accéder à la participation de l'équipe" msgstr "Accéder à la participation de l'équipe"
#: participation/templates/participation/team_detail.html:145 #: participation/templates/participation/team_detail.html:147
msgid "" msgid ""
"Your team has at least 4 members and a coach and all authorizations were " "Your team has at least 4 members and a coach and all authorizations were "
"given: the team can be validated." "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 " "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." "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" msgid "Submit my team to validation"
msgstr "Soumettre mon équipe à validation" msgstr "Soumettre mon équipe à validation"
#: participation/templates/participation/team_detail.html:156 #: participation/templates/participation/team_detail.html:158
msgid "" msgid ""
"Your team must be composed of 4 members and a coach and each member must " "Your team must be composed of 4 members and a coach and each member must "
"upload their authorizations and confirm its email address." "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 " "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." "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." msgid "This team didn't ask for validation yet."
msgstr "L'équipe n'a pas encore demandé à être validée." 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." msgid "Your validation is pending."
msgstr "Votre validation est en attente." msgstr "Votre validation est en attente."
#: participation/templates/participation/team_detail.html:171 #: participation/templates/participation/team_detail.html:173
msgid "" msgid ""
"The team requested to be validated. You may now control the authorizations " "The team requested to be validated. You may now control the authorizations "
"and confirm that they can participate." "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 " "L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
"différentes autorisations et confirmer qu'elle peut participer." "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" msgid "Validate"
msgstr "Valider" msgstr "Valider"
#: participation/templates/participation/team_detail.html:178 #: participation/templates/participation/team_detail.html:180
msgid "Invalidate" msgid "Invalidate"
msgstr "Invalider" msgstr "Invalider"
#: participation/templates/participation/team_detail.html:184 #: participation/templates/participation/team_detail.html:186
#: participation/views.py:337 #: participation/views.py:341
msgid "Upload motivation letter" msgid "Upload motivation letter"
msgstr "Envoyer la lettre de motivation" msgstr "Envoyer la lettre de motivation"
#: participation/templates/participation/team_detail.html:189 #: participation/templates/participation/team_detail.html:191
msgid "Update team" msgid "Update team"
msgstr "Modifier l'équipe" msgstr "Modifier l'équipe"
#: participation/templates/participation/team_detail.html:194 #: participation/templates/participation/team_detail.html:196
#: participation/views.py:446 #: participation/views.py:450
msgid "Leave team" msgid "Leave team"
msgstr "Quitter l'équipe" 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 ?" msgstr "Êtes-vous sûr·e de vouloir quitter cette équipe ?"
#: participation/templates/participation/team_list.html:6 #: participation/templates/participation/team_list.html:6
#: tfjm/templates/base.html:243 #: tfjm/templates/base.html:245
msgid "All teams" msgid "All teams"
msgstr "Toutes les équipes" msgstr "Toutes les équipes"
@ -1435,7 +1449,7 @@ msgid "Add pool"
msgstr "Ajouter une poule" msgstr "Ajouter une poule"
#: participation/templates/participation/tournament_list.html:6 #: participation/templates/participation/tournament_list.html:6
#: tfjm/templates/base.html:239 #: tfjm/templates/base.html:241
msgid "All tournaments" msgid "All tournaments"
msgstr "Tous les tournois" msgstr "Tous les tournois"
@ -1447,7 +1461,7 @@ msgstr "Ajouter un tournoi"
msgid "Back to the team detail" msgid "Back to the team detail"
msgstr "Retour aux détails de l'utilisateur⋅rice" 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" msgid "Download empty notation sheet"
msgstr "Télécharger la fiche de notation vierge" msgstr "Télécharger la fiche de notation vierge"
@ -1455,49 +1469,44 @@ msgstr "Télécharger la fiche de notation vierge"
msgid "Templates:" msgid "Templates:"
msgstr "Modèles :" msgstr "Modèles :"
#: participation/views.py:48 tfjm/templates/base.html:73 #: participation/views.py:52 tfjm/templates/base.html:73
#: tfjm/templates/base.html:254 #: tfjm/templates/base.html:256
msgid "Create team" msgid "Create team"
msgstr "Créer une équipe" 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." 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." 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." msgid "You are already in a team."
msgstr "Vous êtes déjà dans une équipe." msgstr "Vous êtes déjà dans une équipe."
#: participation/views.py:93 tfjm/templates/base.html:78 #: participation/views.py:97 tfjm/templates/base.html:78
#: tfjm/templates/base.html:249 #: tfjm/templates/base.html:251
msgid "Join team" msgid "Join team"
msgstr "Rejoindre une équipe" msgstr "Rejoindre une équipe"
#: participation/views.py:155 participation/views.py:452 #: participation/views.py:160 participation/views.py:491
#: 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
msgid "You don't participate, so you don't have any team." msgid "You don't participate, so you don't have any team."
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe." msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
#: participation/views.py:182 #: participation/views.py:186
#, python-brace-format #, python-brace-format
msgid "Detail of team {trigram}" msgid "Detail of team {trigram}"
msgstr "Détails de l'équipe {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." msgid "You don't participate, so you can't request the validation of the team."
msgstr "" msgstr ""
"Vous ne participez pas, vous ne pouvez pas demander la validation de " "Vous ne participez pas, vous ne pouvez pas demander la validation de "
"l'équipe." "l'équipe."
#: participation/views.py:222 #: participation/views.py:226
msgid "The validation of the team is already done or pending." msgid "The validation of the team is already done or pending."
msgstr "La validation de l'équipe est déjà faite ou en cours." msgstr "La validation de l'équipe est déjà faite ou en cours."
#: participation/views.py:225 #: participation/views.py:229
msgid "" msgid ""
"The team can't be validated: missing email address confirmations, " "The team can't be validated: missing email address confirmations, "
"authorizations, people, motivation letter or the tournament is not set." "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 " "d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
"de motivation, soit le tournoi n'a pas été choisi." "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." msgid "You are not an organizer of the tournament."
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice du tournoi." 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." msgid "This team has no pending validation."
msgstr "L'équipe n'a pas de validation en attente." 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." msgid "You must specify if you validate the registration or not."
msgstr "Vous devez spécifier si vous validez l'inscription ou non." msgstr "Vous devez spécifier si vous validez l'inscription ou non."
#: participation/views.py:315 #: participation/views.py:319
#, python-brace-format #, python-brace-format
msgid "Update team {trigram}" msgid "Update team {trigram}"
msgstr "Mise à jour de l'équipe {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 #, python-brace-format
msgid "Motivation letter of {team}.{ext}" msgid "Motivation letter of {team}.{ext}"
msgstr "Lettre de motivation de {team}.{ext}" msgstr "Lettre de motivation de {team}.{ext}"
#: participation/views.py:407 #: participation/views.py:411
#, python-brace-format #, python-brace-format
msgid "Photo authorization of {participant}.{ext}" msgid "Photo authorization of {participant}.{ext}"
msgstr "Autorisation de droit à l'image de {participant}.{ext}" msgstr "Autorisation de droit à l'image de {participant}.{ext}"
#: participation/views.py:413 #: participation/views.py:417
#, python-brace-format #, python-brace-format
msgid "Parental authorization of {participant}.{ext}" msgid "Parental authorization of {participant}.{ext}"
msgstr "Autorisation parentale de {participant}.{ext}" msgstr "Autorisation parentale de {participant}.{ext}"
#: participation/views.py:420 #: participation/views.py:424
#, python-brace-format #, python-brace-format
msgid "Health sheet of {participant}.{ext}" msgid "Health sheet of {participant}.{ext}"
msgstr "Fiche sanitaire de {participant}.{ext}" msgstr "Fiche sanitaire de {participant}.{ext}"
#: participation/views.py:426 #: participation/views.py:430
#, python-brace-format #, python-brace-format
msgid "Vaccine sheet of {participant}.{ext}" msgid "Vaccine sheet of {participant}.{ext}"
msgstr "Carnet de vaccination de {participant}.{ext}" msgstr "Carnet de vaccination de {participant}.{ext}"
#: participation/views.py:436 #: participation/views.py:440
#, python-brace-format #, python-brace-format
msgid "Photo authorizations of team {trigram}.zip" msgid "Photo authorizations of team {trigram}.zip"
msgstr "Autorisations de droit à l'image de l'équipe {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." msgid "The team is already validated or the validation is pending."
msgstr "La validation de l'équipe est déjà faite ou en cours." 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." msgid "The team is not validated yet."
msgstr "L'équipe n'est pas encore validée." msgstr "L'équipe n'est pas encore validée."
#: participation/views.py:515 #: participation/views.py:519
#, python-brace-format #, python-brace-format
msgid "Participation of team {trigram}" msgid "Participation of team {trigram}"
msgstr "Participation de l'équipe {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." msgid "You can't upload a solution after the deadline."
msgstr "Vous ne pouvez pas envoyer de solution après la date limite." msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
#: participation/views.py:734 #: participation/views.py:738
#, python-brace-format #, python-brace-format
msgid "Jurys of {pool}" msgid "Jurys of {pool}"
msgstr "Juré⋅es de la {pool}" msgstr "Juré⋅es de la {pool}"
#: participation/views.py:761 #: participation/views.py:765
msgid "New TFJM² jury account" msgid "New TFJM² jury account"
msgstr "Nouveau compte de juré⋅e pour le TFJM²" msgstr "Nouveau compte de juré⋅e pour le TFJM²"
#: participation/views.py:774 #: participation/views.py:778
#, python-brace-format #, python-brace-format
msgid "The jury {name} has been successfully added!" msgid "The jury {name} has been successfully added!"
msgstr "Læ juré⋅e {name} a été ajouté⋅e avec succès !" 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:" msgid "The following user is not registered as a jury:"
msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :" msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :"
#: participation/views.py:818 #: participation/views.py:824
msgid "Notes were successfully uploaded." msgid "Notes were successfully uploaded."
msgstr "Les notes ont bien été envoyées." msgstr "Les notes ont bien été envoyées."
#: participation/views.py:979 #: participation/views.py:1488
msgid "You can't upload a synthesis after the deadline." msgid "You can't upload a synthesis after the deadline."
msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite." msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."
@ -1622,11 +1631,11 @@ msgstr "participant⋅e"
msgid "coach" msgid "coach"
msgstr "encadrant⋅e" msgstr "encadrant⋅e"
#: registration/forms.py:218 #: registration/forms.py:227
msgid "Pending" msgid "Pending"
msgstr "En attente" msgstr "En attente"
#: registration/forms.py:234 #: registration/forms.py:243
msgid "You must upload your scholarship attestation." msgid "You must upload your scholarship attestation."
msgstr "Vous devez envoyer votre attestation de bourse." 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." msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
#: registration/templates/registration/password_reset_complete.html:10 #: registration/templates/registration/password_reset_complete.html:10
#: tfjm/templates/base.html:133 tfjm/templates/base.html:259 #: tfjm/templates/base.html:135 tfjm/templates/base.html:261
#: tfjm/templates/base.html:260 tfjm/templates/registration/login.html:7 #: tfjm/templates/base.html:262 tfjm/templates/registration/login.html:7
#: tfjm/templates/registration/login.html:8 #: tfjm/templates/registration/login.html:8
#: tfjm/templates/registration/login.html:25 #: tfjm/templates/registration/login.html:25
msgid "Log in" msgid "Log in"
@ -2382,35 +2391,35 @@ msgstr "Mon équipe"
msgid "My participation" msgid "My participation"
msgstr "Ma participation" msgstr "Ma participation"
#: tfjm/templates/base.html:103 #: tfjm/templates/base.html:105
msgid "Chat" msgid "Chat"
msgstr "Chat" msgstr "Chat"
#: tfjm/templates/base.html:107 #: tfjm/templates/base.html:109
msgid "Administration" msgid "Administration"
msgstr "Administration" msgstr "Administration"
#: tfjm/templates/base.html:115 #: tfjm/templates/base.html:117
msgid "Search…" msgid "Search…"
msgstr "Chercher…" msgstr "Chercher…"
#: tfjm/templates/base.html:124 #: tfjm/templates/base.html:126
msgid "Return to admin view" msgid "Return to admin view"
msgstr "Retourner à l'interface administrateur⋅rice" msgstr "Retourner à l'interface administrateur⋅rice"
#: tfjm/templates/base.html:129 #: tfjm/templates/base.html:131
msgid "Register" msgid "Register"
msgstr "S'inscrire" msgstr "S'inscrire"
#: tfjm/templates/base.html:145 #: tfjm/templates/base.html:147
msgid "My account" msgid "My account"
msgstr "Mon compte" msgstr "Mon compte"
#: tfjm/templates/base.html:150 #: tfjm/templates/base.html:152
msgid "Log out" msgid "Log out"
msgstr "Déconnexion" msgstr "Déconnexion"
#: tfjm/templates/base.html:168 #: tfjm/templates/base.html:170
#, python-format #, python-format
msgid "" msgid ""
"Your email address is not validated. Please click on the link you received " "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 " "avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a "
"href=\"%(send_email_url)s\">ce lien</a>." "href=\"%(send_email_url)s\">ce lien</a>."
#: tfjm/templates/base.html:197 #: tfjm/templates/base.html:199
msgid "Contact us" msgid "Contact us"
msgstr "Nous contacter" msgstr "Nous contacter"
#: tfjm/templates/base.html:224 #: tfjm/templates/base.html:226
msgid "About" msgid "About"
msgstr "À propos" msgstr "À propos"
#: tfjm/templates/base.html:246 #: tfjm/templates/base.html:248
msgid "Search results" msgid "Search results"
msgstr "Résultats de la recherche" msgstr "Résultats de la recherche"

View File

@ -92,11 +92,13 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if user.is_authenticated %} {% if user.is_authenticated %}
<li class="nav-item active"> {% if user.is_volunteer or user.registration.team %}
<a class="nav-link" href="{% url 'draw:index' %}"> <li class="nav-item active">
<i class="fas fa-archive"></i> {% trans "Draw" %} <a class="nav-link" href="{% url 'draw:index' %}">
</a> <i class="fas fa-archive"></i> {% trans "Draw" %}
</li> </a>
</li>
{% endif %}
{% endif %} {% endif %}
<li class="nav-item active"> <li class="nav-item active">
<a class="nav-link" href="{% url "participation:chat" %}"> <a class="nav-link" href="{% url "participation:chat" %}">