Teams can't see problems for the second round until the given date
This commit is contained in:
parent
28abf730a2
commit
4ce767d451
|
@ -38,6 +38,8 @@ class TournamentForm(forms.ModelForm):
|
||||||
"date_inscription": DateTimePickerInput(),
|
"date_inscription": DateTimePickerInput(),
|
||||||
"date_solutions": DateTimePickerInput(),
|
"date_solutions": DateTimePickerInput(),
|
||||||
"date_syntheses": DateTimePickerInput(),
|
"date_syntheses": DateTimePickerInput(),
|
||||||
|
"date_solutions_2": DateTimePickerInput(),
|
||||||
|
"date_syntheses_2": DateTimePickerInput(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -456,6 +456,9 @@ class PoolDetailView(LoginRequiredMixin, DetailView):
|
||||||
pool = self.get_object()
|
pool = self.get_object()
|
||||||
|
|
||||||
if "solutions_zip" in request.POST:
|
if "solutions_zip" in request.POST:
|
||||||
|
if user.participates and pool.round == 2 and pool.tournament.date_solutions_2 > timezone.now():
|
||||||
|
raise PermissionDenied
|
||||||
|
|
||||||
out = BytesIO()
|
out = BytesIO()
|
||||||
zf = zipfile.ZipFile(out, "w")
|
zf = zipfile.ZipFile(out, "w")
|
||||||
|
|
||||||
|
@ -469,6 +472,9 @@ class PoolDetailView(LoginRequiredMixin, DetailView):
|
||||||
.format(_("Solutions of a pool.zip").replace(" ", "%20"))
|
.format(_("Solutions of a pool.zip").replace(" ", "%20"))
|
||||||
return resp
|
return resp
|
||||||
elif "syntheses_zip" in request.POST and user.organizes:
|
elif "syntheses_zip" in request.POST and user.organizes:
|
||||||
|
if user.participates and pool.round == 2 and pool.tournament.date_solutions_2 > timezone.now():
|
||||||
|
raise PermissionDenied
|
||||||
|
|
||||||
out = BytesIO()
|
out = BytesIO()
|
||||||
zf = zipfile.ZipFile(out, "w")
|
zf = zipfile.ZipFile(out, "w")
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: TFJM2\n"
|
"Project-Id-Version: TFJM2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-05 06:09+0200\n"
|
"POT-Creation-Date: 2020-05-05 18:27+0200\n"
|
||||||
"PO-Revision-Date: 2020-04-29 02:30+0000\n"
|
"PO-Revision-Date: 2020-04-29 02:30+0000\n"
|
||||||
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
||||||
"Language-Team: fr <LL@li.org>\n"
|
"Language-Team: fr <LL@li.org>\n"
|
||||||
|
@ -43,8 +43,8 @@ msgid "email"
|
||||||
msgstr "Adresse électronique"
|
msgstr "Adresse électronique"
|
||||||
|
|
||||||
#: apps/member/models.py:26 apps/member/models.py:218 apps/member/models.py:234
|
#: 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/member/models.py:265 apps/tournament/models.py:217
|
||||||
#: apps/tournament/models.py:261 templates/member/tfjmuser_detail.html:16
|
#: apps/tournament/models.py:291 templates/member/tfjmuser_detail.html:16
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "équipe"
|
msgstr "équipe"
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ msgstr "téléphone du responsable"
|
||||||
msgid "responsible email"
|
msgid "responsible email"
|
||||||
msgstr "email du responsable"
|
msgstr "email du responsable"
|
||||||
|
|
||||||
#: apps/member/models.py:124 apps/tournament/models.py:35
|
#: apps/member/models.py:124 apps/tournament/models.py:37
|
||||||
#: templates/member/tfjmuser_detail.html:67
|
#: templates/member/tfjmuser_detail.html:67
|
||||||
#: templates/tournament/tournament_detail.html:36
|
#: templates/tournament/tournament_detail.html:36
|
||||||
msgid "description"
|
msgid "description"
|
||||||
|
@ -134,13 +134,13 @@ msgstr "Organisateur"
|
||||||
msgid "Coach"
|
msgid "Coach"
|
||||||
msgstr "Encadrant"
|
msgstr "Encadrant"
|
||||||
|
|
||||||
#: apps/member/models.py:139 apps/tournament/models.py:79
|
#: apps/member/models.py:139 apps/tournament/models.py:81
|
||||||
#: apps/tournament/models.py:157
|
#: apps/tournament/models.py:178
|
||||||
msgid "year"
|
msgid "year"
|
||||||
msgstr "année"
|
msgstr "année"
|
||||||
|
|
||||||
#: apps/member/models.py:155 apps/member/models.py:191
|
#: apps/member/models.py:155 apps/member/models.py:191
|
||||||
#: apps/tournament/models.py:254
|
#: apps/tournament/models.py:284
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "utilisateur"
|
msgstr "utilisateur"
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ msgstr "Autorisation de droit à l'image"
|
||||||
msgid "Sanitary plug"
|
msgid "Sanitary plug"
|
||||||
msgstr "Fiche sanitaire"
|
msgstr "Fiche sanitaire"
|
||||||
|
|
||||||
#: apps/member/models.py:200 apps/tournament/models.py:272
|
#: apps/member/models.py:200 apps/tournament/models.py:302
|
||||||
msgid "Scholarship"
|
msgid "Scholarship"
|
||||||
msgstr "Bourse"
|
msgstr "Bourse"
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ msgstr "solution pour la finale"
|
||||||
msgid "solution"
|
msgid "solution"
|
||||||
msgstr "solution"
|
msgstr "solution"
|
||||||
|
|
||||||
#: apps/member/models.py:252 apps/tournament/models.py:214
|
#: apps/member/models.py:252 apps/tournament/models.py:244
|
||||||
msgid "solutions"
|
msgid "solutions"
|
||||||
msgstr "solutions"
|
msgstr "solutions"
|
||||||
|
|
||||||
|
@ -247,15 +247,15 @@ msgstr "Rapporteur"
|
||||||
msgid "source"
|
msgid "source"
|
||||||
msgstr "source"
|
msgstr "source"
|
||||||
|
|
||||||
#: apps/member/models.py:280 apps/tournament/models.py:219
|
#: apps/member/models.py:280 apps/tournament/models.py:249
|
||||||
msgid "Round 1"
|
msgid "Round 1"
|
||||||
msgstr "Tour 1"
|
msgstr "Tour 1"
|
||||||
|
|
||||||
#: apps/member/models.py:281 apps/tournament/models.py:220
|
#: apps/member/models.py:281 apps/tournament/models.py:250
|
||||||
msgid "Round 2"
|
msgid "Round 2"
|
||||||
msgstr "Tour 2"
|
msgstr "Tour 2"
|
||||||
|
|
||||||
#: apps/member/models.py:283 apps/tournament/models.py:222
|
#: apps/member/models.py:283 apps/tournament/models.py:252
|
||||||
#: templates/tournament/pool_detail.html:18
|
#: templates/tournament/pool_detail.html:18
|
||||||
msgid "round"
|
msgid "round"
|
||||||
msgstr "tour"
|
msgstr "tour"
|
||||||
|
@ -323,8 +323,8 @@ msgstr "Profils orphelins"
|
||||||
msgid "Organizers"
|
msgid "Organizers"
|
||||||
msgstr "Organisateurs"
|
msgstr "Organisateurs"
|
||||||
|
|
||||||
#: apps/tournament/apps.py:7 apps/tournament/models.py:104
|
#: apps/tournament/apps.py:7 apps/tournament/models.py:110
|
||||||
#: apps/tournament/models.py:126 templates/tournament/pool_detail.html:21
|
#: apps/tournament/models.py:147 templates/tournament/pool_detail.html:21
|
||||||
#: templates/tournament/team_detail.html:21
|
#: templates/tournament/team_detail.html:21
|
||||||
msgid "tournament"
|
msgid "tournament"
|
||||||
msgstr "tournoi"
|
msgstr "tournoi"
|
||||||
|
@ -337,220 +337,220 @@ msgstr "Ce tournoi existe déjà."
|
||||||
msgid "The final tournament was already defined."
|
msgid "The final tournament was already defined."
|
||||||
msgstr "Le tournoi de la finale est déjà défini."
|
msgstr "Le tournoi de la finale est déjà défini."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:53
|
#: apps/tournament/forms.py:55
|
||||||
msgid "This organizer already exist."
|
msgid "This organizer already exist."
|
||||||
msgstr "Cet organisateur existe déjà."
|
msgstr "Cet organisateur existe déjà."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:78
|
#: apps/tournament/forms.py:81
|
||||||
msgid "The trigram must be composed of three upcase letters."
|
msgid "The trigram must be composed of three upcase letters."
|
||||||
msgstr "Le trigramme doit être composé de trois lettres en majuscules."
|
msgstr "Le trigramme doit être composé de trois lettres en majuscules."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:82
|
#: apps/tournament/forms.py:85
|
||||||
msgid "This trigram is already used."
|
msgid "This trigram is already used."
|
||||||
msgstr "Ce trigramme est déjà utilisé."
|
msgstr "Ce trigramme est déjà utilisé."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:85
|
#: apps/tournament/forms.py:88
|
||||||
msgid "This name is already used."
|
msgid "This name is already used."
|
||||||
msgstr "Ce nom est déjà utilisé."
|
msgstr "Ce nom est déjà utilisé."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:88
|
#: apps/tournament/forms.py:91
|
||||||
msgid "This tournament is already closed."
|
msgid "This tournament is already closed."
|
||||||
msgstr "Ce tournoi est déjà fermé."
|
msgstr "Ce tournoi est déjà fermé."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:95
|
#: apps/tournament/forms.py:98
|
||||||
msgid "Access code"
|
msgid "Access code"
|
||||||
msgstr "Code d'accès"
|
msgstr "Code d'accès"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:103
|
#: apps/tournament/forms.py:106
|
||||||
msgid "The access code must be composed of 6 alphanumeric characters."
|
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."
|
msgstr "Le code d'accès doit être composé de 6 caractères alphanumériques."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:107
|
#: apps/tournament/forms.py:110
|
||||||
msgid "This access code is invalid."
|
msgid "This access code is invalid."
|
||||||
msgstr "Ce code d'accès est invalide."
|
msgstr "Ce code d'accès est invalide."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:110
|
#: apps/tournament/forms.py:113
|
||||||
msgid "The team is already validated."
|
msgid "The team is already validated."
|
||||||
msgstr "L'équipe est déjà validée."
|
msgstr "L'équipe est déjà validée."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:118
|
#: apps/tournament/forms.py:121
|
||||||
msgid "Problem"
|
msgid "Problem"
|
||||||
msgstr "Problème"
|
msgstr "Problème"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:119
|
#: apps/tournament/forms.py:122
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Problem #{problem:d}"
|
msgid "Problem #{problem:d}"
|
||||||
msgstr "Problème n°{problem:d}"
|
msgstr "Problème n°{problem:d}"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:136 apps/tournament/forms.py:149
|
#: apps/tournament/forms.py:139 apps/tournament/forms.py:152
|
||||||
#: apps/tournament/forms.py:162
|
#: apps/tournament/forms.py:165
|
||||||
msgid "Choose a team..."
|
msgid "Choose a team..."
|
||||||
msgstr "Choisir une équipe ..."
|
msgstr "Choisir une équipe ..."
|
||||||
|
|
||||||
#: apps/tournament/forms.py:137
|
#: apps/tournament/forms.py:140
|
||||||
msgid "Team 1"
|
msgid "Team 1"
|
||||||
msgstr "Équipe 1"
|
msgstr "Équipe 1"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:144
|
#: apps/tournament/forms.py:147
|
||||||
msgid "Problem defended by team 1"
|
msgid "Problem defended by team 1"
|
||||||
msgstr "Problème défendu par l'équipe 1"
|
msgstr "Problème défendu par l'équipe 1"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:150
|
#: apps/tournament/forms.py:153
|
||||||
msgid "Team 2"
|
msgid "Team 2"
|
||||||
msgstr "Équipe 2"
|
msgstr "Équipe 2"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:157
|
#: apps/tournament/forms.py:160
|
||||||
msgid "Problem defended by team 2"
|
msgid "Problem defended by team 2"
|
||||||
msgstr "Problème défendu par l'équipe 2"
|
msgstr "Problème défendu par l'équipe 2"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:163
|
#: apps/tournament/forms.py:166
|
||||||
msgid "Team 3"
|
msgid "Team 3"
|
||||||
msgstr "Équipe 3"
|
msgstr "Équipe 3"
|
||||||
|
|
||||||
#: apps/tournament/forms.py:170
|
#: apps/tournament/forms.py:173
|
||||||
msgid "Problem defended by team 3"
|
msgid "Problem defended by team 3"
|
||||||
msgstr "Problème défendu par l'équipe 3"
|
msgstr "Problème défendu par l'équipe 3"
|
||||||
|
|
||||||
#: apps/tournament/models.py:12 apps/tournament/models.py:114
|
#: apps/tournament/models.py:14 apps/tournament/models.py:135
|
||||||
#: templates/tournament/team_detail.html:12
|
#: templates/tournament/team_detail.html:12
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: apps/tournament/models.py:18 templates/tournament/tournament_detail.html:12
|
#: apps/tournament/models.py:20 templates/tournament/tournament_detail.html:12
|
||||||
msgid "organizers"
|
msgid "organizers"
|
||||||
msgstr "organisateurs"
|
msgstr "organisateurs"
|
||||||
|
|
||||||
#: apps/tournament/models.py:22 templates/tournament/tournament_detail.html:15
|
#: apps/tournament/models.py:24 templates/tournament/tournament_detail.html:15
|
||||||
msgid "size"
|
msgid "size"
|
||||||
msgstr "taille"
|
msgstr "taille"
|
||||||
|
|
||||||
#: apps/tournament/models.py:27 templates/tournament/tournament_detail.html:18
|
#: apps/tournament/models.py:29 templates/tournament/tournament_detail.html:18
|
||||||
msgid "place"
|
msgid "place"
|
||||||
msgstr "lieu"
|
msgstr "lieu"
|
||||||
|
|
||||||
#: apps/tournament/models.py:31 templates/tournament/tournament_detail.html:21
|
#: apps/tournament/models.py:33 templates/tournament/tournament_detail.html:21
|
||||||
msgid "price"
|
msgid "price"
|
||||||
msgstr "prix"
|
msgstr "prix"
|
||||||
|
|
||||||
#: apps/tournament/models.py:40
|
#: apps/tournament/models.py:42
|
||||||
msgid "date start"
|
msgid "date start"
|
||||||
msgstr "date de début"
|
msgstr "date de début"
|
||||||
|
|
||||||
#: apps/tournament/models.py:45
|
#: apps/tournament/models.py:47
|
||||||
msgid "date end"
|
msgid "date end"
|
||||||
msgstr "date de fin"
|
msgstr "date de fin"
|
||||||
|
|
||||||
#: apps/tournament/models.py:50 templates/tournament/tournament_detail.html:27
|
#: apps/tournament/models.py:52 templates/tournament/tournament_detail.html:27
|
||||||
msgid "date of registration closing"
|
msgid "date of registration closing"
|
||||||
msgstr "date de clôture des inscriptions"
|
msgstr "date de clôture des inscriptions"
|
||||||
|
|
||||||
#: apps/tournament/models.py:55 templates/tournament/tournament_detail.html:30
|
#: apps/tournament/models.py:57 templates/tournament/tournament_detail.html:30
|
||||||
msgid "date of maximal solution submission"
|
msgid "date of maximal solution submission"
|
||||||
msgstr "date d'envoi maximal des solutions"
|
msgstr "date d'envoi maximal des solutions"
|
||||||
|
|
||||||
#: apps/tournament/models.py:60
|
#: apps/tournament/models.py:62
|
||||||
msgid "date of maximal syntheses submission for the first round"
|
msgid "date of maximal syntheses submission for the first round"
|
||||||
msgstr "date d'envoi maximal des notes de synthèses du premier tour"
|
msgstr "date d'envoi maximal des notes de synthèses du premier tour"
|
||||||
|
|
||||||
#: apps/tournament/models.py:65
|
#: apps/tournament/models.py:67
|
||||||
msgid "date when solutions of round 2 are available"
|
msgid "date when solutions of round 2 are available"
|
||||||
msgstr "date à partir de laquelle les solutions du tour 2 sont disponibles"
|
msgstr "date à partir de laquelle les solutions du tour 2 sont disponibles"
|
||||||
|
|
||||||
#: apps/tournament/models.py:70
|
#: apps/tournament/models.py:72
|
||||||
msgid "date of maximal syntheses submission for the second round"
|
msgid "date of maximal syntheses submission for the second round"
|
||||||
msgstr "date d'envoi maximal des notes de synthèses pour le second tour"
|
msgstr "date d'envoi maximal des notes de synthèses pour le second tour"
|
||||||
|
|
||||||
#: apps/tournament/models.py:74
|
#: apps/tournament/models.py:76
|
||||||
msgid "final tournament"
|
msgid "final tournament"
|
||||||
msgstr "finale"
|
msgstr "finale"
|
||||||
|
|
||||||
#: apps/tournament/models.py:105
|
#: apps/tournament/models.py:111
|
||||||
msgid "tournaments"
|
msgid "tournaments"
|
||||||
msgstr "tournois"
|
msgstr "tournois"
|
||||||
|
|
||||||
#: apps/tournament/models.py:119 templates/tournament/team_detail.html:15
|
#: apps/tournament/models.py:140 templates/tournament/team_detail.html:15
|
||||||
msgid "trigram"
|
msgid "trigram"
|
||||||
msgstr "trigramme"
|
msgstr "trigramme"
|
||||||
|
|
||||||
#: apps/tournament/models.py:131
|
#: apps/tournament/models.py:152
|
||||||
msgid "inscription date"
|
msgid "inscription date"
|
||||||
msgstr "date d'inscription"
|
msgstr "date d'inscription"
|
||||||
|
|
||||||
#: apps/tournament/models.py:137 apps/tournament/models.py:281
|
#: apps/tournament/models.py:158 apps/tournament/models.py:311
|
||||||
msgid "Registration not validated"
|
msgid "Registration not validated"
|
||||||
msgstr "Inscription non validée"
|
msgstr "Inscription non validée"
|
||||||
|
|
||||||
#: apps/tournament/models.py:138 apps/tournament/models.py:282
|
#: apps/tournament/models.py:159 apps/tournament/models.py:312
|
||||||
msgid "Waiting for validation"
|
msgid "Waiting for validation"
|
||||||
msgstr "En attente de validation"
|
msgstr "En attente de validation"
|
||||||
|
|
||||||
#: apps/tournament/models.py:139 apps/tournament/models.py:283
|
#: apps/tournament/models.py:160 apps/tournament/models.py:313
|
||||||
msgid "Registration validated"
|
msgid "Registration validated"
|
||||||
msgstr "Inscription validée"
|
msgstr "Inscription validée"
|
||||||
|
|
||||||
#: apps/tournament/models.py:141 apps/tournament/models.py:285
|
#: apps/tournament/models.py:162 apps/tournament/models.py:315
|
||||||
#: templates/tournament/team_detail.html:30
|
#: templates/tournament/team_detail.html:30
|
||||||
msgid "validation status"
|
msgid "validation status"
|
||||||
msgstr "statut de validation"
|
msgstr "statut de validation"
|
||||||
|
|
||||||
#: apps/tournament/models.py:146
|
#: apps/tournament/models.py:167
|
||||||
msgid "selected for final"
|
msgid "selected for final"
|
||||||
msgstr "sélectionnée pour la finale"
|
msgstr "sélectionnée pour la finale"
|
||||||
|
|
||||||
#: apps/tournament/models.py:152 templates/tournament/team_detail.html:18
|
#: apps/tournament/models.py:173 templates/tournament/team_detail.html:18
|
||||||
msgid "access code"
|
msgid "access code"
|
||||||
msgstr "code d'accès"
|
msgstr "code d'accès"
|
||||||
|
|
||||||
#: apps/tournament/models.py:197 apps/tournament/models.py:208
|
#: apps/tournament/models.py:218 apps/tournament/models.py:238
|
||||||
#: templates/tournament/pool_detail.html:15
|
#: templates/tournament/pool_detail.html:15
|
||||||
msgid "teams"
|
msgid "teams"
|
||||||
msgstr "équipes"
|
msgstr "équipes"
|
||||||
|
|
||||||
#: apps/tournament/models.py:228 templates/tournament/pool_detail.html:12
|
#: apps/tournament/models.py:258 templates/tournament/pool_detail.html:12
|
||||||
msgid "juries"
|
msgid "juries"
|
||||||
msgstr "jurys"
|
msgstr "jurys"
|
||||||
|
|
||||||
#: apps/tournament/models.py:245
|
#: apps/tournament/models.py:275
|
||||||
msgid "pool"
|
msgid "pool"
|
||||||
msgstr "poule"
|
msgstr "poule"
|
||||||
|
|
||||||
#: apps/tournament/models.py:246
|
#: apps/tournament/models.py:276
|
||||||
msgid "pools"
|
msgid "pools"
|
||||||
msgstr "poules"
|
msgstr "poules"
|
||||||
|
|
||||||
#: apps/tournament/models.py:267
|
#: apps/tournament/models.py:297
|
||||||
msgid "Not paid"
|
msgid "Not paid"
|
||||||
msgstr "Non payé"
|
msgstr "Non payé"
|
||||||
|
|
||||||
#: apps/tournament/models.py:268
|
#: apps/tournament/models.py:298
|
||||||
msgid "Credit card"
|
msgid "Credit card"
|
||||||
msgstr "Carte bancaire"
|
msgstr "Carte bancaire"
|
||||||
|
|
||||||
#: apps/tournament/models.py:269
|
#: apps/tournament/models.py:299
|
||||||
msgid "Bank check"
|
msgid "Bank check"
|
||||||
msgstr "Chèque bancaire"
|
msgstr "Chèque bancaire"
|
||||||
|
|
||||||
#: apps/tournament/models.py:270
|
#: apps/tournament/models.py:300
|
||||||
msgid "Bank transfer"
|
msgid "Bank transfer"
|
||||||
msgstr "Virement bancaire"
|
msgstr "Virement bancaire"
|
||||||
|
|
||||||
#: apps/tournament/models.py:271
|
#: apps/tournament/models.py:301
|
||||||
msgid "Cash"
|
msgid "Cash"
|
||||||
msgstr "Espèces"
|
msgstr "Espèces"
|
||||||
|
|
||||||
#: apps/tournament/models.py:275
|
#: apps/tournament/models.py:305
|
||||||
msgid "payment method"
|
msgid "payment method"
|
||||||
msgstr "moyen de paiement"
|
msgstr "moyen de paiement"
|
||||||
|
|
||||||
#: apps/tournament/models.py:289
|
#: apps/tournament/models.py:319
|
||||||
msgid "payment"
|
msgid "payment"
|
||||||
msgstr "paiement"
|
msgstr "paiement"
|
||||||
|
|
||||||
#: apps/tournament/models.py:290
|
#: apps/tournament/models.py:320
|
||||||
msgid "payments"
|
msgid "payments"
|
||||||
msgstr "paiements"
|
msgstr "paiements"
|
||||||
|
|
||||||
#: apps/tournament/models.py:293
|
#: apps/tournament/models.py:323
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Payment of {user}"
|
msgid "Payment of {user}"
|
||||||
msgstr "Paiement de {user}"
|
msgstr "Paiement de {user}"
|
||||||
|
@ -563,77 +563,77 @@ msgstr "dates"
|
||||||
msgid "From {start:%b %d %Y} to {end:%b %d %Y}"
|
msgid "From {start:%b %d %Y} to {end:%b %d %Y}"
|
||||||
msgstr "Du {start: %d %b %Y} au {end:%d %b %Y}"
|
msgstr "Du {start: %d %b %Y} au {end:%d %b %Y}"
|
||||||
|
|
||||||
#: apps/tournament/tables.py:68 apps/tournament/tables.py:101
|
#: apps/tournament/tables.py:70 apps/tournament/tables.py:103
|
||||||
#: templates/tournament/team_detail.html:115
|
#: templates/tournament/team_detail.html:115
|
||||||
#: templates/tournament/team_detail.html:123
|
#: templates/tournament/team_detail.html:123
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr "Télécharger"
|
msgstr "Télécharger"
|
||||||
|
|
||||||
#: apps/tournament/views.py:52
|
#: apps/tournament/views.py:49
|
||||||
msgid "Tournaments list"
|
msgid "Tournaments list"
|
||||||
msgstr "Liste des tournois"
|
msgstr "Liste des tournois"
|
||||||
|
|
||||||
#: apps/tournament/views.py:71
|
#: apps/tournament/views.py:68
|
||||||
msgid "Add tournament"
|
msgid "Add tournament"
|
||||||
msgstr "Ajouter un tournoi"
|
msgstr "Ajouter un tournoi"
|
||||||
|
|
||||||
#: apps/tournament/views.py:83
|
#: apps/tournament/views.py:80
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Tournament of {name}"
|
msgid "Tournament of {name}"
|
||||||
msgstr "Tournoi de {name}"
|
msgstr "Tournoi de {name}"
|
||||||
|
|
||||||
#: apps/tournament/views.py:104
|
#: apps/tournament/views.py:101
|
||||||
msgid "Update tournament"
|
msgid "Update tournament"
|
||||||
msgstr "Modifier le tournoi"
|
msgstr "Modifier le tournoi"
|
||||||
|
|
||||||
#: apps/tournament/views.py:136 apps/tournament/views.py:223
|
#: apps/tournament/views.py:133 apps/tournament/views.py:221
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Solutions for team {team}.zip"
|
msgid "Solutions for team {team}.zip"
|
||||||
msgstr "Solutions pour l'équipe {team}.zip"
|
msgstr "Solutions pour l'équipe {team}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:169
|
#: apps/tournament/views.py:166
|
||||||
msgid "Information about team"
|
msgid "Information about team"
|
||||||
msgstr "Informations sur l'équipe"
|
msgstr "Informations sur l'équipe"
|
||||||
|
|
||||||
#: apps/tournament/views.py:177
|
#: apps/tournament/views.py:174
|
||||||
msgid "Update team"
|
msgid "Update team"
|
||||||
msgstr "Modifier l'équipe"
|
msgstr "Modifier l'équipe"
|
||||||
|
|
||||||
#: apps/tournament/views.py:189
|
#: apps/tournament/views.py:186
|
||||||
msgid "Add organizer"
|
msgid "Add organizer"
|
||||||
msgstr "Ajouter un organisateur"
|
msgstr "Ajouter un organisateur"
|
||||||
|
|
||||||
#: apps/tournament/views.py:207 templates/base.html:108 templates/base.html:126
|
#: apps/tournament/views.py:205 templates/base.html:108 templates/base.html:126
|
||||||
#: templates/tournament/pool_detail.html:31
|
#: templates/tournament/pool_detail.html:31
|
||||||
msgid "Solutions"
|
msgid "Solutions"
|
||||||
msgstr "Solutions"
|
msgstr "Solutions"
|
||||||
|
|
||||||
#: apps/tournament/views.py:241
|
#: apps/tournament/views.py:239
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your solution anymore. Deadline: {date:%m-%d-%Y %h:%M}."
|
"You can't publish your solution anymore. Deadline: {date:%m-%d-%Y %h:%M}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous ne pouvez plus publier vos solutions. Deadline : {date:%d/%m/%Y %h:%M}."
|
"Vous ne pouvez plus publier vos solutions. Deadline : {date:%d/%m/%Y %h:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:265
|
#: apps/tournament/views.py:263
|
||||||
msgid "All solutions"
|
msgid "All solutions"
|
||||||
msgstr "Toutes les solutions"
|
msgstr "Toutes les solutions"
|
||||||
|
|
||||||
#: apps/tournament/views.py:284
|
#: apps/tournament/views.py:282
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Solutions for tournament {tournament}.zip"
|
msgid "Solutions for tournament {tournament}.zip"
|
||||||
msgstr "Solutions pour le tournoi {tournament}.zip"
|
msgstr "Solutions pour le tournoi {tournament}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:310 templates/base.html:111 templates/base.html:129
|
#: apps/tournament/views.py:308 templates/base.html:111 templates/base.html:129
|
||||||
#: templates/tournament/pool_detail.html:53
|
#: templates/tournament/pool_detail.html:59
|
||||||
msgid "Syntheses"
|
msgid "Syntheses"
|
||||||
msgstr "Synthèses"
|
msgstr "Synthèses"
|
||||||
|
|
||||||
#: apps/tournament/views.py:326
|
#: apps/tournament/views.py:324
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Syntheses for team {team}.zip"
|
msgid "Syntheses for team {team}.zip"
|
||||||
msgstr "Notes de synthèse de l'équipe {team}.zip"
|
msgstr "Notes de synthèse de l'équipe {team}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:345
|
#: apps/tournament/views.py:343
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your synthesis anymore for the first round. Deadline: "
|
"You can't publish your synthesis anymore for the first round. Deadline: "
|
||||||
"{date:%m-%d-%Y %h:%M}."
|
"{date:%m-%d-%Y %h:%M}."
|
||||||
|
@ -641,7 +641,7 @@ msgstr ""
|
||||||
"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. "
|
"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. "
|
||||||
"Deadline : {date:%d/%m/%Y %h:%M}."
|
"Deadline : {date:%d/%m/%Y %h:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:351
|
#: apps/tournament/views.py:349
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your synthesis anymore for the second round. Deadline: "
|
"You can't publish your synthesis anymore for the second round. Deadline: "
|
||||||
"{date:%m-%d-%Y %h:%M}."
|
"{date:%m-%d-%Y %h:%M}."
|
||||||
|
@ -649,32 +649,32 @@ msgstr ""
|
||||||
"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. "
|
"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. "
|
||||||
"Deadline : {date:%d/%m/%Y %h:%M}."
|
"Deadline : {date:%d/%m/%Y %h:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:377
|
#: apps/tournament/views.py:375
|
||||||
msgid "All syntheses"
|
msgid "All syntheses"
|
||||||
msgstr "Toutes les notes de synthèses"
|
msgstr "Toutes les notes de synthèses"
|
||||||
|
|
||||||
#: apps/tournament/views.py:396
|
#: apps/tournament/views.py:394
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Syntheses for tournament {tournament}.zip"
|
msgid "Syntheses for tournament {tournament}.zip"
|
||||||
msgstr "Notes de synthèse pour le tournoi {tournament}.zip"
|
msgstr "Notes de synthèse pour le tournoi {tournament}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:421 templates/base.html:133
|
#: apps/tournament/views.py:419 templates/base.html:133
|
||||||
msgid "Pools"
|
msgid "Pools"
|
||||||
msgstr "Poules"
|
msgstr "Poules"
|
||||||
|
|
||||||
#: apps/tournament/views.py:436
|
#: apps/tournament/views.py:435
|
||||||
msgid "Create pool"
|
msgid "Create pool"
|
||||||
msgstr "Créer une poule"
|
msgstr "Créer une poule"
|
||||||
|
|
||||||
#: apps/tournament/views.py:444
|
#: apps/tournament/views.py:443
|
||||||
msgid "Pool detail"
|
msgid "Pool detail"
|
||||||
msgstr "Détails d'une poule"
|
msgstr "Détails d'une poule"
|
||||||
|
|
||||||
#: apps/tournament/views.py:470
|
#: apps/tournament/views.py:472
|
||||||
msgid "Solutions of a pool.zip"
|
msgid "Solutions of a pool.zip"
|
||||||
msgstr "Solutions d'une poule.zip"
|
msgstr "Solutions d'une poule.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:483
|
#: apps/tournament/views.py:488
|
||||||
msgid "Syntheses of a pool.zip"
|
msgid "Syntheses of a pool.zip"
|
||||||
msgstr "Notes de synthèse d'une poule.zip"
|
msgstr "Notes de synthèse d'une poule.zip"
|
||||||
|
|
||||||
|
@ -972,12 +972,16 @@ msgstr ""
|
||||||
msgid "Reset my password"
|
msgid "Reset my password"
|
||||||
msgstr "Réinitialiser mon mot de passe"
|
msgstr "Réinitialiser mon mot de passe"
|
||||||
|
|
||||||
#: templates/tournament/pool_detail.html:43
|
#: templates/tournament/pool_detail.html:36
|
||||||
#: templates/tournament/pool_detail.html:65
|
msgid "Solutions will be available here for teams from:"
|
||||||
|
msgstr "Les solutions seront disponibles ici pour les équipes à partir du :"
|
||||||
|
|
||||||
|
#: templates/tournament/pool_detail.html:49
|
||||||
|
#: templates/tournament/pool_detail.html:71
|
||||||
msgid "Download ZIP archive"
|
msgid "Download ZIP archive"
|
||||||
msgstr "Télécharger l'archive ZIP"
|
msgstr "Télécharger l'archive ZIP"
|
||||||
|
|
||||||
#: templates/tournament/pool_detail.html:74
|
#: templates/tournament/pool_detail.html:80
|
||||||
msgid "Pool list"
|
msgid "Pool list"
|
||||||
msgstr "Liste des poules"
|
msgstr "Liste des poules"
|
||||||
|
|
||||||
|
@ -1084,10 +1088,10 @@ msgstr "Envoyer un mail à toutes les personnes dans une équipe"
|
||||||
msgid "Send a mail to all people that are in a valid team"
|
msgid "Send a mail to all people that are in a valid team"
|
||||||
msgstr "Envoyer un mail à toutes les personnes dans une équipe validée"
|
msgstr "Envoyer un mail à toutes les personnes dans une équipe validée"
|
||||||
|
|
||||||
#: tfjm/settings.py:157
|
#: tfjm/settings.py:146
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Anglais"
|
msgstr "Anglais"
|
||||||
|
|
||||||
#: tfjm/settings.py:158
|
#: tfjm/settings.py:147
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
|
@ -31,6 +31,12 @@
|
||||||
<h4>{% trans "Solutions" %}</h4>
|
<h4>{% trans "Solutions" %}</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
{% if pool.round == 2 %}
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
{% trans "Solutions will be available here for teams from:" %} {{ pool.tournament.date_solutions_2 }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for solution in pool.solutions.all %}
|
{% for solution in pool.solutions.all %}
|
||||||
<li><a data-turbolinks="false" href="{{ solution.file.url }}">{{ solution }}</a></li>
|
<li><a data-turbolinks="false" href="{{ solution.file.url }}">{{ solution }}</a></li>
|
||||||
|
|
Loading…
Reference in New Issue