diff --git a/apps/tournament/views.py b/apps/tournament/views.py index ed9a6fe..2e2144c 100644 --- a/apps/tournament/views.py +++ b/apps/tournament/views.py @@ -466,7 +466,7 @@ class PoolDetailView(LoginRequiredMixin, DetailView): resp['Content-Disposition'] = 'attachment; filename={}' \ .format(_("Solutions of a pool.zip").replace(" ", "%20")) return resp - elif "syntheses_zip" in request.POST: + elif "syntheses_zip" in request.POST and user.organizes: out = BytesIO() zf = zipfile.ZipFile(out, "w") diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 54854c4..c2d255d 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: TFJM2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 02:56+0200\n" +"POT-Creation-Date: 2020-05-05 04:45+0200\n" "PO-Revision-Date: 2020-04-29 02:30+0000\n" "Last-Translator: Yohann D'ANELLO \n" "Language-Team: fr \n" @@ -44,7 +44,7 @@ msgstr "Adresse électronique" #: apps/member/models.py:26 apps/member/models.py:218 apps/member/models.py:234 #: apps/member/models.py:265 apps/tournament/models.py:196 -#: apps/tournament/models.py:216 templates/member/tfjmuser_detail.html:16 +#: apps/tournament/models.py:261 templates/member/tfjmuser_detail.html:16 msgid "team" msgstr "équipe" @@ -140,7 +140,7 @@ msgid "year" msgstr "année" #: apps/member/models.py:155 apps/member/models.py:191 -#: apps/tournament/models.py:209 +#: apps/tournament/models.py:254 msgid "user" msgstr "utilisateur" @@ -176,7 +176,7 @@ msgstr "Autorisation de droit à l'image" msgid "Sanitary plug" msgstr "Fiche sanitaire" -#: apps/member/models.py:200 apps/tournament/models.py:227 +#: apps/member/models.py:200 apps/tournament/models.py:272 msgid "Scholarship" msgstr "Bourse" @@ -222,7 +222,7 @@ msgstr "solution pour la finale" msgid "solution" msgstr "solution" -#: apps/member/models.py:252 +#: apps/member/models.py:252 apps/tournament/models.py:214 msgid "solutions" msgstr "solutions" @@ -247,15 +247,16 @@ msgstr "Rapporteur" msgid "source" msgstr "source" -#: apps/member/models.py:280 +#: apps/member/models.py:280 apps/tournament/models.py:219 msgid "Round 1" msgstr "Tour 1" -#: apps/member/models.py:281 +#: apps/member/models.py:281 apps/tournament/models.py:220 msgid "Round 2" msgstr "Tour 2" -#: apps/member/models.py:283 +#: apps/member/models.py:283 apps/tournament/models.py:222 +#: templates/tournament/pool_detail.html:18 msgid "round" msgstr "tour" @@ -272,6 +273,7 @@ msgid "syntheses" msgstr "synthèses" #: apps/member/models.py:301 +#, python-brace-format msgid "" "Synthesis of team {trigram} that is {source} for the tournament {tournament}" msgstr "" @@ -293,92 +295,122 @@ msgstr "configuration" msgid "configurations" msgstr "configurations" -#: apps/member/views.py:81 apps/member/views.py:117 +#: apps/member/views.py:82 apps/member/views.py:118 msgid "You can't organize and participate at the same time." msgstr "Vous ne pouvez pas organiser et participer en même temps." -#: apps/member/views.py:85 apps/member/views.py:121 +#: apps/member/views.py:86 apps/member/views.py:122 msgid "You are already in a team." msgstr "Vous êtes déjà dans une équipe." -#: apps/member/views.py:125 +#: apps/member/views.py:126 msgid "This team is full of coachs." msgstr "Cette équipe est pleine en encadrants." -#: apps/member/views.py:129 +#: apps/member/views.py:130 msgid "This team is full of participants." msgstr "Cette équipe est pleine en participants." -#: apps/member/views.py:165 templates/base.html:81 +#: apps/member/views.py:176 templates/base.html:81 msgid "All profiles" msgstr "Tous les profils" -#: apps/member/views.py:174 templates/base.html:80 +#: apps/member/views.py:185 templates/base.html:80 msgid "Orphaned profiles" msgstr "Profils orphelins" -#: apps/member/views.py:183 templates/base.html:83 +#: apps/member/views.py:194 apps/tournament/forms.py:17 templates/base.html:83 msgid "Organizers" msgstr "Organisateurs" #: apps/tournament/apps.py:7 apps/tournament/models.py:104 -#: apps/tournament/models.py:126 templates/tournament/team_detail.html:21 +#: apps/tournament/models.py:126 templates/tournament/pool_detail.html:21 +#: templates/tournament/team_detail.html:21 msgid "tournament" msgstr "tournoi" -#: apps/tournament/forms.py:19 +#: apps/tournament/forms.py:25 msgid "This tournament already exists." msgstr "Ce tournoi existe déjà." -#: apps/tournament/forms.py:21 +#: apps/tournament/forms.py:27 msgid "The final tournament was already defined." msgstr "Le tournoi de la finale est déjà défini." -#: apps/tournament/forms.py:47 +#: apps/tournament/forms.py:53 msgid "This organizer already exist." msgstr "Cet organisateur existe déjà." -#: apps/tournament/forms.py:72 +#: apps/tournament/forms.py:78 msgid "The trigram must be composed of three upcase letters." msgstr "Le trigramme doit être composé de trois lettres en majuscules." -#: apps/tournament/forms.py:76 +#: apps/tournament/forms.py:82 msgid "This trigram is already used." msgstr "Ce trigramme est déjà utilisé." -#: apps/tournament/forms.py:79 +#: apps/tournament/forms.py:85 msgid "This name is already used." msgstr "Ce nom est déjà utilisé." -#: apps/tournament/forms.py:82 +#: apps/tournament/forms.py:88 msgid "This tournament is already closed." msgstr "Ce tournoi est déjà fermé." -#: apps/tournament/forms.py:89 +#: apps/tournament/forms.py:95 msgid "Access code" msgstr "Code d'accès" -#: apps/tournament/forms.py:97 +#: apps/tournament/forms.py:103 msgid "The access code must be composed of 6 alphanumeric characters." msgstr "Le code d'accès doit être composé de 6 caractères alphanumériques." -#: apps/tournament/forms.py:101 +#: apps/tournament/forms.py:107 msgid "This access code is invalid." msgstr "Ce code d'accès est invalide." -#: apps/tournament/forms.py:104 +#: apps/tournament/forms.py:110 msgid "The team is already validated." msgstr "L'équipe est déjà validée." -#: apps/tournament/forms.py:112 +#: apps/tournament/forms.py:118 msgid "Problem" msgstr "Problème" -#: apps/tournament/forms.py:113 +#: apps/tournament/forms.py:119 #, python-brace-format msgid "Problem #{problem:d}" msgstr "Problème n°{problem:d}" +#: apps/tournament/forms.py:136 apps/tournament/forms.py:149 +#: apps/tournament/forms.py:162 +msgid "Choose a team..." +msgstr "Choisir une équipe ..." + +#: apps/tournament/forms.py:137 +msgid "Team 1" +msgstr "Équipe 1" + +#: apps/tournament/forms.py:144 +msgid "Problem defended by team 1" +msgstr "Problème défendu par l'équipe 1" + +#: apps/tournament/forms.py:150 +msgid "Team 2" +msgstr "Équipe 2" + +#: apps/tournament/forms.py:157 +msgid "Problem defended by team 2" +msgstr "Problème défendu par l'équipe 2" + +#: apps/tournament/forms.py:163 +msgid "Team 3" +msgstr "Équipe 3" + +#: apps/tournament/forms.py:170 +msgid "Problem defended by team 3" +msgstr "Problème défendu par l'équipe 3" + #: apps/tournament/models.py:12 apps/tournament/models.py:114 #: templates/tournament/team_detail.html:12 msgid "name" @@ -444,19 +476,19 @@ msgstr "trigramme" msgid "inscription date" msgstr "date d'inscription" -#: apps/tournament/models.py:137 apps/tournament/models.py:236 +#: apps/tournament/models.py:137 apps/tournament/models.py:281 msgid "Registration not validated" msgstr "Inscription non validée" -#: apps/tournament/models.py:138 apps/tournament/models.py:237 +#: apps/tournament/models.py:138 apps/tournament/models.py:282 msgid "Waiting for validation" msgstr "En attente de validation" -#: apps/tournament/models.py:139 apps/tournament/models.py:238 +#: apps/tournament/models.py:139 apps/tournament/models.py:283 msgid "Registration validated" msgstr "Inscription validée" -#: apps/tournament/models.py:141 apps/tournament/models.py:240 +#: apps/tournament/models.py:141 apps/tournament/models.py:285 #: templates/tournament/team_detail.html:30 msgid "validation status" msgstr "statut de validation" @@ -469,43 +501,56 @@ msgstr "sélectionnée pour la finale" msgid "access code" msgstr "code d'accès" -#: apps/tournament/models.py:197 +#: apps/tournament/models.py:197 apps/tournament/models.py:208 +#: templates/tournament/pool_detail.html:15 msgid "teams" msgstr "équipes" -#: apps/tournament/models.py:222 +#: apps/tournament/models.py:228 templates/tournament/pool_detail.html:12 +msgid "juries" +msgstr "jurys" + +#: apps/tournament/models.py:245 +msgid "pool" +msgstr "poule" + +#: apps/tournament/models.py:246 +msgid "pools" +msgstr "poules" + +#: apps/tournament/models.py:267 msgid "Not paid" msgstr "Non payé" -#: apps/tournament/models.py:223 +#: apps/tournament/models.py:268 msgid "Credit card" msgstr "Carte bancaire" -#: apps/tournament/models.py:224 +#: apps/tournament/models.py:269 msgid "Bank check" msgstr "Chèque bancaire" -#: apps/tournament/models.py:225 +#: apps/tournament/models.py:270 msgid "Bank transfer" msgstr "Virement bancaire" -#: apps/tournament/models.py:226 +#: apps/tournament/models.py:271 msgid "Cash" msgstr "Espèces" -#: apps/tournament/models.py:230 +#: apps/tournament/models.py:275 msgid "payment method" msgstr "moyen de paiement" -#: apps/tournament/models.py:244 +#: apps/tournament/models.py:289 msgid "payment" msgstr "paiement" -#: apps/tournament/models.py:245 +#: apps/tournament/models.py:290 msgid "payments" msgstr "paiements" -#: apps/tournament/models.py:248 +#: apps/tournament/models.py:293 #, python-brace-format msgid "Payment of {user}" msgstr "Paiement de {user}" @@ -559,6 +604,7 @@ msgid "Add organizer" msgstr "Ajouter un organisateur" #: apps/tournament/views.py:204 templates/base.html:108 templates/base.html:126 +#: templates/tournament/pool_detail.html:31 msgid "Solutions" msgstr "Solutions" @@ -578,10 +624,12 @@ msgid "Solutions for tournament {tournament}.zip" msgstr "Solutions pour le tournoi {tournament}.zip" #: apps/tournament/views.py:307 templates/base.html:111 templates/base.html:129 +#: templates/tournament/pool_detail.html:53 msgid "Syntheses" msgstr "Synthèses" #: apps/tournament/views.py:323 +#, python-brace-format msgid "Syntheses for team {team}.zip" msgstr "Notes de synthèse de l'équipe {team}.zip" @@ -590,26 +638,48 @@ msgid "" "You can't publish your synthesis anymore for the first round. Deadline: " "{date:%m-%d-%Y %h:%M}." msgstr "" -"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. Deadline : " -"{date:%d/%m/%Y %h:%M}." +"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. " +"Deadline : {date:%d/%m/%Y %h:%M}." #: apps/tournament/views.py:348 msgid "" "You can't publish your synthesis anymore for the second round. Deadline: " "{date:%m-%d-%Y %h:%M}." msgstr "" -"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. Deadline : " -"{date:%d/%m/%Y %h:%M}." +"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. " +"Deadline : {date:%d/%m/%Y %h:%M}." #: apps/tournament/views.py:374 msgid "All syntheses" msgstr "Toutes les notes de synthèses" #: apps/tournament/views.py:393 -#, fuzzy, python-brace-format +#, python-brace-format msgid "Syntheses for tournament {tournament}.zip" msgstr "Notes de synthèse pour le tournoi {tournament}.zip" +#: apps/tournament/views.py:418 templates/base.html:133 +msgid "Pools" +msgstr "Poules" + +#: apps/tournament/views.py:433 +msgid "Create pool" +msgstr "Créer une poule" + +#: apps/tournament/views.py:441 +msgid "Pool detail" +msgstr "Détails d'une poule" + +#: apps/tournament/views.py:467 +#| msgid "Solutions for team {team}.zip" +msgid "Solutions of a pool.zip" +msgstr "Solutions d'une poule.zip" + +#: apps/tournament/views.py:480 +#| msgid "Syntheses for team {team}.zip" +msgid "Syntheses of a pool.zip" +msgstr "Notes de synthèse d'une poule.zip" + #: templates/400.html:6 msgid "Bad request" msgstr "Requête invalide" @@ -645,7 +715,8 @@ msgstr "Page non trouvée" msgid "" "The requested path %(request_path)s was not found on the server." msgstr "" -"Le chemin demandé %(request_path)s n'a pas été trouvé sur le serveur." +"Le chemin demandé %(request_path)s n'a pas été trouvé sur le " +"serveur." #: templates/500.html:6 msgid "Server error" @@ -697,30 +768,30 @@ msgstr "Ajouter un tournoi" msgid "Add an organizer" msgstr "Ajouter un oragnisateur" -#: templates/base.html:135 +#: templates/base.html:138 msgid "Make a gift" msgstr "Faire un don" -#: templates/base.html:139 +#: templates/base.html:142 msgid "Administration" msgstr "Administration" -#: templates/base.html:146 +#: templates/base.html:149 msgid "Return to admin view" msgstr "Retour à l'interface administrateur" -#: templates/base.html:151 templates/registration/login.html:7 +#: templates/base.html:154 templates/registration/login.html:7 #: templates/registration/login.html:8 templates/registration/login.html:22 #: templates/registration/password_reset_complete.html:10 msgid "Log in" msgstr "Connexion" -#: templates/base.html:154 templates/registration/signup.html:5 +#: templates/base.html:157 templates/registration/signup.html:5 #: templates/registration/signup.html:8 templates/registration/signup.html:14 msgid "Sign up" msgstr "S'inscrire" -#: templates/base.html:158 +#: templates/base.html:161 msgid "Log out" msgstr "Déconnexion" @@ -731,6 +802,7 @@ msgstr "Filtres" #: templates/django_filters/rest_framework/form.html:5 #: templates/member/my_account.html:8 templates/tournament/add_organizer.html:9 +#: templates/tournament/pool_form.html:9 #: templates/tournament/solutions_list.html:10 #: templates/tournament/syntheses_list.html:10 #: templates/tournament/team_form.html:9 @@ -739,10 +811,8 @@ msgid "Submit" msgstr "Envoyer" #: templates/member/my_account.html:13 -#, fuzzy -#| msgid "Reset my password" msgid "Update my password" -msgstr "Réinitialiser mon mot de passe" +msgstr "Changer mon mot de passe" #: templates/member/tfjmuser_detail.html:12 msgid "role" @@ -863,8 +933,8 @@ msgid "" "Please enter your new password twice so we can verify you typed it in " "correctly." msgstr "" -"Veuillez taper votre nouveau mot de passe deux fois afin de s'assurer " -"que vous l'ayez tapé correctement." +"Veuillez taper votre nouveau mot de passe deux fois afin de s'assurer que " +"vous l'ayez tapé correctement." #: templates/registration/password_reset_confirm.html:15 msgid "" @@ -904,6 +974,15 @@ msgstr "" msgid "Reset my password" msgstr "Réinitialiser mon mot de passe" +#: templates/tournament/pool_detail.html:43 +#: templates/tournament/pool_detail.html:65 +msgid "Download ZIP archive" +msgstr "Télécharger l'archive ZIP" + +#: templates/tournament/pool_list.html:10 +msgid "Add pool" +msgstr "Ajouter une poule" + #: templates/tournament/solutions_orga_list.html:14 #: templates/tournament/syntheses_orga_list.html:14 #, python-format