diff --git a/draw/templates/draw/index.html b/draw/templates/draw/index.html index 840bbed..ec6fc6d 100644 --- a/draw/templates/draw/index.html +++ b/draw/templates/draw/index.html @@ -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 %} + {% else %} +
+ {% trans "You don't participate to any tournament." %} +
{% endfor %} {% endblock %} diff --git a/draw/views.py b/draw/views.py index 6e98e1c..db8a994 100644 --- a/draw/views.py +++ b/draw/views.py @@ -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()) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 4285811..5174670 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -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 \n" "Language-Team: LANGUAGE \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 ce lien." -#: 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" diff --git a/tfjm/templates/base.html b/tfjm/templates/base.html index 7bc9212..4d9f6df 100644 --- a/tfjm/templates/base.html +++ b/tfjm/templates/base.html @@ -92,11 +92,13 @@ {% endif %} {% endif %} {% if user.is_authenticated %} - + {% if user.is_volunteer or user.registration.team %} + + {% endif %} {% endif %}