1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-11-14 14:21:29 +01:00

Add responsabilities of accompanying coaches + translate message about pending dates

This commit is contained in:
Maxime JUST
2025-11-11 19:34:42 +01:00
parent af60d27402
commit 27a4bdf98e
4 changed files with 244 additions and 152 deletions

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 18:36+0100\n"
"POT-Creation-Date: 2025-11-11 19:29+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,7 +37,7 @@ msgstr "Canaux d'équipes"
msgid "Private channels"
msgstr "Messages privés"
#: chat/models.py:29 participation/models.py:35 participation/models.py:280
#: chat/models.py:29 participation/models.py:36 participation/models.py:280
#: participation/tables.py:19 participation/tables.py:35
msgid "name"
msgstr "nom"
@@ -80,7 +80,7 @@ msgstr "Type de permission nécessaire pour écrire un message dans un canal."
#: draw/models.py:27 participation/admin.py:86 participation/admin.py:148
#: participation/admin.py:203 participation/models.py:800
#: participation/models.py:824 participation/models.py:1163
#: registration/models.py:802
#: registration/models.py:805
#: registration/templates/registration/payment_form.html:53
#: survey/templates/survey/survey_detail.html:51
msgid "tournament"
@@ -112,7 +112,7 @@ msgstr ""
#: participation/admin.py:199 participation/models.py:269
#: participation/models.py:815
#: participation/templates/participation/tournament_harmonize.html:15
#: registration/models.py:160 registration/models.py:793
#: registration/models.py:163 registration/models.py:796
#: registration/tables.py:39
#: registration/templates/registration/payment_form.html:52
#: survey/templates/survey/survey_detail.html:62
@@ -922,7 +922,7 @@ msgstr "Vous n'êtes pas dans une équipe."
msgid "Logs"
msgstr "Logs"
#: logs/models.py:22 registration/models.py:37
#: logs/models.py:22 registration/models.py:40
msgid "user"
msgstr "utilisateur"
@@ -1057,15 +1057,15 @@ msgstr ""
#: registration/forms.py:126 registration/forms.py:148
#: registration/forms.py:170 registration/forms.py:192
#: registration/forms.py:214 registration/forms.py:236
#: registration/forms.py:298 registration/forms.py:331
#: registration/forms.py:319 registration/forms.py:352
msgid "The uploaded file size must be under 2 Mo."
msgstr "Le fichier envoyé doit peser moins de 2 Mo."
#: participation/forms.py:121 registration/forms.py:128
#: registration/forms.py:150 registration/forms.py:172
#: registration/forms.py:194 registration/forms.py:216
#: registration/forms.py:238 registration/forms.py:300
#: registration/forms.py:333
#: registration/forms.py:238 registration/forms.py:321
#: registration/forms.py:354
msgid "The uploaded file must be a PDF, PNG of JPEG file."
msgstr "Le fichier envoyé doit être au format PDF, PNG ou JPEG."
@@ -1130,32 +1130,32 @@ msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème."
msgid "The PDF file must not have more than 2 pages."
msgstr "Le fichier PDF ne doit pas avoir plus de 2 pages."
#: participation/models.py:41
#: participation/models.py:42
msgid "code"
msgstr "code"
#: participation/models.py:42
#: participation/models.py:43
#, python-brace-format
msgid "The code must be composed of {nb_letters} uppercase letters."
msgstr "Le code doit être composé de {nb_letters} lettres majuscules."
#: participation/models.py:48
#: participation/models.py:49
msgid "This team code is forbidden."
msgstr "Ce code d'équipe est interdit."
#: participation/models.py:54
#: participation/models.py:55
msgid "access code"
msgstr "code d'accès"
#: participation/models.py:55
#: participation/models.py:56
msgid "The access code let other people to join the team."
msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
#: participation/models.py:59
#: participation/models.py:60
msgid "motivation letter"
msgstr "lettre de motivation"
#: participation/models.py:108
#: participation/models.py:109
#, python-brace-format
msgid ""
"The team {trigram} is not registered to any tournament. You can register the "
@@ -1164,11 +1164,11 @@ msgstr ""
"L'équipe {trigram} n'est inscrite à aucun tournoi. Vous pouvez inscrire "
"l'équipe à un tournoi en cliquant sur <a href='{url}'>ce lien</a>."
#: participation/models.py:113
#: participation/models.py:114
msgid "No tournament"
msgstr "Pas de tournoi"
#: participation/models.py:119
#: participation/models.py:120
msgid ""
"Registrations for the tournament of {tournament} are ending on the {date:%Y-"
"%m-%d %H:%M}."
@@ -1176,11 +1176,11 @@ msgstr ""
"Les inscriptions pour le tournoi de {tournament} se terminent le {date:%d/%m/"
"%Y %H:%M}."
#: participation/models.py:124
#: participation/models.py:125
msgid "Registrations closure"
msgstr "Clôture des inscriptions"
#: participation/models.py:131
#: participation/models.py:132
#, python-brace-format
msgid ""
"The team {trigram} has not uploaded a motivation letter. You can upload your "
@@ -1190,11 +1190,11 @@ msgstr ""
"envoyer votre lettre de motivation en cliquant sur <a href='{url}'>ce lien</"
"a>."
#: participation/models.py:136
#: participation/models.py:137
msgid "No motivation letter"
msgstr "Pas de lettre de motivation"
#: participation/models.py:145
#: participation/models.py:146
#, python-brace-format
msgid ""
"The team {trigram} has less than 4 students ({nb_students}). You can invite "
@@ -1204,11 +1204,11 @@ msgstr ""
"plus d'élèves à rejoindre l'équipe en utilisant le code d'invitation "
"<strong>{code}</strong>."
#: participation/models.py:150
#: participation/models.py:151
msgid "Not enough students"
msgstr "Pas assez d'élèves"
#: participation/models.py:157
#: participation/models.py:158
#, python-brace-format
msgid ""
"The team {trigram} has no coach. You can invite a coach to join the team "
@@ -1218,11 +1218,11 @@ msgstr ""
"encadrant⋅e à rejoindre l'équipe en utilisant le code d'invitation "
"<strong>{code}</strong>."
#: participation/models.py:161
#: participation/models.py:162
msgid "No coach"
msgstr "Pas d'encadrant⋅e"
#: participation/models.py:168
#: participation/models.py:169
#, python-brace-format
msgid ""
"The team {trigram} has more than 6 students ({nb_students}) or more than 2 "
@@ -1233,11 +1233,11 @@ msgstr ""
"encadrant⋅es ({nb_coaches}). Vous devez restreindre le nombre d'élèves et "
"d'encadrant⋅es à 6 et 2, respectivement."
#: participation/models.py:173
#: participation/models.py:174
msgid "Too many members"
msgstr "Trop de membres"
#: participation/models.py:180
#: participation/models.py:181
#, python-brace-format
msgid ""
"The team {trigram} is ready to be validated. You can request validation on "
@@ -1246,11 +1246,11 @@ msgstr ""
"L'équipe {trigram} est prête à être validée. Vous pouvez demander la "
"validation sur <a href='{url}'>la page de votre équipe</a>."
#: participation/models.py:185 participation/models.py:196
#: participation/models.py:186 participation/models.py:197
msgid "Validate team"
msgstr "Valider l'équipe"
#: participation/models.py:191
#: participation/models.py:192
#, python-brace-format
msgid ""
"The team {trigram} has enough participants, but is not ready to be "
@@ -1263,7 +1263,7 @@ msgstr ""
"documents requis. Pour inviter plus de participant⋅es, utilisez le code "
"d'invitation <strong>{code}</strong>."
#: participation/models.py:202
#: participation/models.py:203
#, python-brace-format
msgid ""
"The team {trigram} has not been validated by the organizers yet. Please be "
@@ -1272,7 +1272,7 @@ msgstr ""
"L'équipe {trigram} n'a pas encore été validée par les organisateurices. "
"Merci de patienter."
#: participation/models.py:205 registration/models.py:621
#: participation/models.py:206 registration/models.py:624
msgid "Pending validation"
msgstr "Validation en attente"
@@ -1498,7 +1498,7 @@ msgstr ""
msgid "Missing payments"
msgstr "Paiements manquants"
#: participation/models.py:884 registration/models.py:310
#: participation/models.py:884 registration/models.py:313
#, python-brace-format
msgid ""
"Please answer to the survey \"{name}\". You can go to the survey on <a "
@@ -1509,7 +1509,7 @@ msgstr ""
"questionnaire sur <a href=\"{survey_link}\">ce lien</a>, en utilisant le "
"code que vous avez reçu par mail."
#: participation/models.py:888 registration/models.py:314
#: participation/models.py:888 registration/models.py:317
msgid "Required answer to survey"
msgstr "Réponse requise au questionnaire"
@@ -1545,7 +1545,7 @@ msgstr ""
"parties.</p><p>Vous pouvez envoyer vos solutions sur <a href='{url}'>votre "
"page de participation</a>.</p>"
#: participation/models.py:935 registration/models.py:646
#: participation/models.py:935 registration/models.py:649
msgid ""
"<p>The draw of the solutions for the tournament {tournament} is planned on "
"the {date:%Y-%m-%d %H:%M}. You can join it on <a href='{url}'>this link</a>."
@@ -1555,7 +1555,7 @@ msgstr ""
"{date:%d/%m/%Y %H:%M}. Vous pouvez y participer sur <a href='{url}'>ce lien</"
"a>.</p>"
#: participation/models.py:941 registration/models.py:653
#: participation/models.py:941 registration/models.py:656
msgid "Draw of solutions"
msgstr "Tirage au sort des solutions"
@@ -1613,7 +1613,7 @@ msgstr ""
msgid "Templates:"
msgstr "Modèles :"
#: participation/models.py:1006 registration/models.py:668
#: participation/models.py:1006 registration/models.py:671
msgid "First round"
msgstr "Premier tour"
@@ -1627,7 +1627,7 @@ msgstr ""
"solution du problème {problem}</a>.</p>"
#: participation/models.py:1069 participation/models.py:1133
#: registration/models.py:679
#: registration/models.py:682
msgid "Second round"
msgstr "Second tour"
@@ -2407,7 +2407,7 @@ msgid "Payment of"
msgstr "Paiement de"
#: participation/templates/participation/team_detail.html:175
#: registration/models.py:723
#: registration/models.py:726
msgid "grouped"
msgstr "groupé"
@@ -2702,7 +2702,7 @@ msgid "Archive of all printable note sheets sorted by pool"
msgstr "Archive de toutes les fiches de notes imprimables triées par poule"
#: participation/templates/participation/tournament_harmonize.html:16
#: registration/models.py:694
#: registration/models.py:697
msgid "Note"
msgstr "Note"
@@ -3002,8 +3002,8 @@ msgstr "Marquer comme en attente"
msgid "Mark as invalid"
msgstr "Marquer comme invalide"
#: registration/apps.py:14 registration/models.py:133
#: registration/models.py:719
#: registration/apps.py:14 registration/models.py:136
#: registration/models.py:722
msgid "registrations"
msgstr "inscriptions"
@@ -3015,7 +3015,7 @@ msgstr "rôle"
msgid "participant"
msgstr "participant⋅e"
#: registration/forms.py:26 registration/models.py:555
#: registration/forms.py:26 registration/models.py:558
msgid "coach"
msgstr "encadrant⋅e"
@@ -3023,28 +3023,61 @@ msgstr "encadrant⋅e"
msgid "This email address is already used."
msgstr "Cette adresse e-mail est déjà utilisée."
#: registration/forms.py:289
#: registration/forms.py:255
msgid ""
"I undertake to be present throughout the entire tournament weekend alongside "
"the team (including overnight stays)."
msgstr ""
"Je m'engage à être présent durant lintégralité du week-end du tournoi au "
"côté de léquipe (nuit sur place comprise)"
#: registration/forms.py:256
msgid ""
"I undertake to respond to the team's (non-mathematical) problems and not to "
"hesitate to discuss them with the tournament organisers, who will be able to "
"help."
msgstr ""
"Je m'engage à répondre aux problèmes (non mathématiques) de léquipe et ne "
"pas hésiter à en parler aux organisateurs du tournoi qui pourront aider ;"
#: registration/forms.py:257
msgid ""
"In case of absence, I undertake to notify the organisers as soon as "
"possible, providing a replacement if possible."
msgstr ""
"En cas d'absence, je m'engage à prévenir les organisateurs le plus tôt "
"possible avec si possible un remplaçant disponible."
#: registration/forms.py:264
msgid "Responsabilities of accompanying coaches"
msgstr "Devoirs un⋅e accompagnateur⋅ice :"
#: registration/forms.py:285
msgid "Please tick all the required confirmations."
msgstr "Merci d'accepter tous les devoirs d'un⋅e accompagnateur⋅ice."
#: registration/forms.py:310
msgid "Pending"
msgstr "En attente"
#: registration/forms.py:308 registration/forms.py:341
#: registration/forms.py:329 registration/forms.py:362
msgid "You must upload your receipt."
msgstr "Vous devez envoyer votre justificatif."
#: registration/models.py:42
#: registration/models.py:45
msgid "Grant Animath to contact me in the future about other actions"
msgstr ""
"Autoriser Animath à me recontacter à l'avenir à propos d'autres actions"
#: registration/models.py:47
#: registration/models.py:50
msgid "email confirmed"
msgstr "email confirmé"
#: registration/models.py:55
#: registration/models.py:58
msgid "Activate your account"
msgstr "Activez votre compte"
#: registration/models.py:112
#: registration/models.py:115
#, python-brace-format
msgid ""
"Your email address is not validated. Please click on the link you received "
@@ -3055,52 +3088,52 @@ msgstr ""
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a "
"href=\"{send_email_url}\">ce lien</a>."
#: registration/models.py:132
#: registration/models.py:135
msgid "registration"
msgstr "inscription"
#: registration/models.py:165
#: registration/models.py:168
msgid "gender"
msgstr "genre"
#: registration/models.py:167
#: registration/models.py:170
msgid "Female"
msgstr "Femme"
#: registration/models.py:168
#: registration/models.py:171
msgid "Male"
msgstr "Homme"
#: registration/models.py:169
#: registration/models.py:172
#: registration/templates/registration/payment_form.html:89
msgid "Other"
msgstr "Autre"
#: registration/models.py:175
#: registration/models.py:178
msgid "address"
msgstr "adresse"
#: registration/models.py:179
#: registration/models.py:182
msgid "zip code"
msgstr "code postal"
#: registration/models.py:185
#: registration/models.py:188
msgid "city"
msgstr "ville"
#: registration/models.py:190
#: registration/models.py:193
msgid "country"
msgstr "pays"
#: registration/models.py:195
#: registration/models.py:198
msgid "phone number"
msgstr "numéro de téléphone"
#: registration/models.py:200
#: registration/models.py:203
msgid "health issues"
msgstr "problèmes de santé"
#: registration/models.py:202
#: registration/models.py:205
msgid ""
"You can indicate here your allergies or anything that is important to know "
"for organizers."
@@ -3108,11 +3141,11 @@ msgstr ""
"Vous pouvez indiquer ici vos allergies ou n'importe quoi qui peut être bon à "
"savoir pour les organisateur⋅rices."
#: registration/models.py:206
#: registration/models.py:209
msgid "housing constraints"
msgstr "contraintes de logement"
#: registration/models.py:208
#: registration/models.py:211
msgid ""
"You can fill in something here if you have any housing constraints, e.g. "
"medical problems, scheduling issues, gender issues, or anything else you "
@@ -3125,15 +3158,15 @@ msgstr ""
"organisateur⋅rices. Laissez vide si vous n'avez rien de spécifique à "
"déclarer."
#: registration/models.py:215
#: registration/models.py:218
msgid "photo authorization"
msgstr "autorisation de droit à l'image"
#: registration/models.py:222
#: registration/models.py:225
msgid "photo authorization (final)"
msgstr "autorisation de droit à l'image (finale)"
#: registration/models.py:268
#: registration/models.py:271
#, python-brace-format
msgid ""
"You are not in a team. You can <a href=\"{create_url}\">create one</a> or <a "
@@ -3143,11 +3176,11 @@ msgstr ""
"a> ou <a href=\"{join_url}\">rejoindre une équipe existante</a> pour "
"participer."
#: registration/models.py:274
#: registration/models.py:277
msgid "No team"
msgstr "Pas d'équipe"
#: registration/models.py:282
#: registration/models.py:285
#, python-brace-format
msgid ""
"You have not uploaded your photo authorization. You can do it by clicking on "
@@ -3156,11 +3189,11 @@ msgstr ""
"Vous n'avez pas envoyé votre autorisation de droit à l'image. Vous pouvez le "
"faire en cliquant sur <a href=\"{photo_url}\">ce lien</a>."
#: registration/models.py:287 registration/models.py:300
#: registration/models.py:290 registration/models.py:303
msgid "Photo authorization"
msgstr "Autorisation de droit à l'image"
#: registration/models.py:295
#: registration/models.py:298
#, python-brace-format
msgid ""
"You have not uploaded your photo authorization for the final tournament. You "
@@ -3169,75 +3202,75 @@ msgstr ""
"Vous n'avez pas envoyé votre autorisation de droit à l'image pour la finale. "
"Vous pouvez le faire en cliquant sur <a href=\"{photo_url}\">ce lien</a>."
#: registration/models.py:329
#: registration/models.py:332
msgid "Team selected for the final tournament"
msgstr "Équipe sélectionnée pour la finale"
#: registration/models.py:351
#: registration/models.py:354
msgid "participant registration"
msgstr "inscription de participant⋅e"
#: registration/models.py:352
#: registration/models.py:355
msgid "participant registrations"
msgstr "inscriptions de participant⋅es"
#: registration/models.py:361
#: registration/models.py:364
msgid "birth date"
msgstr "date de naissance"
#: registration/models.py:367
#: registration/models.py:370
msgid "12th grade"
msgstr "Terminale"
#: registration/models.py:368
#: registration/models.py:371
msgid "11th grade"
msgstr "Première"
#: registration/models.py:369
#: registration/models.py:372
msgid "10th grade or lower"
msgstr "Seconde ou inférieur"
#: registration/models.py:371
#: registration/models.py:374
msgid "student class"
msgstr "classe"
#: registration/models.py:376
#: registration/models.py:379
msgid "school"
msgstr "école"
#: registration/models.py:381
#: registration/models.py:384
msgid "responsible name"
msgstr "nom d'un⋅e responsable légal⋅e"
#: registration/models.py:386
#: registration/models.py:389
msgid "responsible phone number"
msgstr "numéro de téléphone d'un⋅e responsable légal⋅e"
#: registration/models.py:391
#: registration/models.py:394
msgid "responsible email address"
msgstr "adresse e-mail d'un⋅e responsable légal⋅e"
#: registration/models.py:396
#: registration/models.py:399
msgid "parental authorization"
msgstr "autorisation parentale"
#: registration/models.py:403
#: registration/models.py:406
msgid "parental authorization (final)"
msgstr "autorisation parentale (finale)"
#: registration/models.py:410
#: registration/models.py:413
msgid "health sheet"
msgstr "fiche sanitaire"
#: registration/models.py:417
#: registration/models.py:420
msgid "vaccine sheet"
msgstr "carnet de vaccination"
#: registration/models.py:425
#: registration/models.py:428
msgid "student"
msgstr "élève"
#: registration/models.py:436
#: registration/models.py:439
#, python-brace-format
msgid ""
"You have not uploaded your parental authorization. You can do it by clicking "
@@ -3246,11 +3279,11 @@ msgstr ""
"Vous n'avez pas envoyé votre autorisation parentale. Vous pouvez le faire en "
"cliquant sur <a href=\"{parental_url}\">ce lien</a>."
#: registration/models.py:441 registration/models.py:501
#: registration/models.py:444 registration/models.py:504
msgid "Parental authorization"
msgstr "Autorisation parentale"
#: registration/models.py:447
#: registration/models.py:450
#, python-brace-format
msgid ""
"You have not uploaded your health sheet. You can do it by clicking on <a "
@@ -3259,11 +3292,11 @@ msgstr ""
"Vous n'avez pas envoyé votre fiche sanitaire. Vous pouvez le faire en "
"cliquant sur <a href=\"{health_url}\">ce lien</a>."
#: registration/models.py:452
#: registration/models.py:455
msgid "Health sheet"
msgstr "Fiche sanitaire"
#: registration/models.py:458
#: registration/models.py:461
#, python-brace-format
msgid ""
"You have not uploaded your vaccine sheet. You can do it by clicking on <a "
@@ -3272,11 +3305,11 @@ msgstr ""
"Vous n'avez pas envoyé votre carnet de vaccination. Vous pouvez le faire en "
"cliquant sur <a href=\"{vaccine_url}\">ce lien</a>."
#: registration/models.py:463
#: registration/models.py:466
msgid "Vaccine sheet"
msgstr "Carnet de vaccination"
#: registration/models.py:472
#: registration/models.py:475
#, python-brace-format
msgid ""
"You have to pay {amount} € for your registration, or send a scholarship "
@@ -3287,15 +3320,15 @@ msgstr ""
"notification de bourse ou un justificatif de paiement. Vous pouvez le faire "
"sur <a href=\"{url}\">la page de paiement</a>."
#: registration/models.py:478 registration/models.py:487
#: registration/models.py:481 registration/models.py:490
msgid "Payment"
msgstr "Paiement"
#: registration/models.py:484
#: registration/models.py:487
msgid "Your payment is under approval."
msgstr "Votre paiement est en cours de validation."
#: registration/models.py:495
#: registration/models.py:498
#, python-brace-format
msgid ""
"You have not uploaded your parental authorization for the final tournament. "
@@ -3304,19 +3337,19 @@ msgstr ""
"Vous n'avez pas envoyé votre autorisation parentale pour la finale. Vous "
"pouvez le faire en cliquant sur <a href=\"{parental_url}\">ce lien</a>."
#: registration/models.py:510
#: registration/models.py:513
msgid "student registration"
msgstr "inscription d'élève"
#: registration/models.py:511
#: registration/models.py:514
msgid "student registrations"
msgstr "inscriptions d'élève"
#: registration/models.py:522
#: registration/models.py:525
msgid "most recent degree in mathematics, computer science or physics"
msgstr "Dernier diplôme obtenu en mathématiques, informatique ou physique"
#: registration/models.py:523
#: registration/models.py:526
msgid ""
"Your most recent degree in maths, computer science or physics, or your last "
"entrance exam (CAPES, Agrégation,…)"
@@ -3324,15 +3357,15 @@ msgstr ""
"Votre dernier diplôme en mathématiques, informatique ou physique, ou votre "
"dernier concours obtenu (CAPES, Agrégation, …)"
#: registration/models.py:528 registration/models.py:572
#: registration/models.py:531 registration/models.py:575
msgid "professional activity"
msgstr "activité professionnelle"
#: registration/models.py:533
#: registration/models.py:536
msgid "Scientific coach"
msgstr "Encadrant⋅e scientifique"
#: registration/models.py:536
#: registration/models.py:539
msgid ""
"Provides scientific guidance: methodology, content review, and project "
"mentoring during the preparation phase."
@@ -3340,34 +3373,34 @@ msgstr ""
"Suit l'équipe tout au long de la phase de préparation et les encadre "
"scientifiquement en accord avec le règlement."
#: registration/models.py:538 registration/models.py:549
#: registration/models.py:541 registration/models.py:552
msgid "see practical sheet"
msgstr "Voir fiche pratique"
#: registration/models.py:544
#: registration/models.py:547
msgid "Accompanying coach"
msgstr "Accompagnateur"
#: registration/models.py:547
#: registration/models.py:550
msgid ""
"Accompanies the team during the weekend and stays for the entire tournament."
msgstr ""
"Accompagne l'équipe durant le week-end et s'engage à y rester tout le "
"tournoi."
#: registration/models.py:563
#: registration/models.py:566
msgid "coach registration"
msgstr "inscription d'encadrant⋅e"
#: registration/models.py:564
#: registration/models.py:567
msgid "coach registrations"
msgstr "inscriptions d'encadrant⋅es"
#: registration/models.py:576
#: registration/models.py:579
msgid "administrator"
msgstr "administrateur⋅rice"
#: registration/models.py:577
#: registration/models.py:580
msgid ""
"An administrator has all rights. Please don't give this right to all juries "
"and volunteers."
@@ -3375,15 +3408,15 @@ msgstr ""
"Un⋅e administrateur⋅rice a tous les droits. Merci de ne pas donner ce droit "
"à toustes les juré⋅es et bénévoles."
#: registration/models.py:587
#: registration/models.py:590
msgid "admin"
msgstr "admin"
#: registration/models.py:587
#: registration/models.py:590
msgid "volunteer"
msgstr "bénévole"
#: registration/models.py:600
#: registration/models.py:603
msgid ""
"Registrations for tournament {tournament} are closing on {date:%Y-%m-%d %H:"
"%M}. There are for now {validated_teams} validated teams (+ {pending_teams} "
@@ -3393,11 +3426,11 @@ msgstr ""
"%M}. Il y a pour l'instant {validated_teams} équipes validées (+ "
"{pending_teams} en attente) sur {max_teams} attendues."
#: registration/models.py:608
#: registration/models.py:611
msgid "Registrations"
msgstr "Inscriptions"
#: registration/models.py:615
#: registration/models.py:618
#, python-brace-format
msgid ""
"The team {trigram} requested to be validated for the tournament of "
@@ -3408,7 +3441,7 @@ msgstr ""
"Vous pouvez vérifier le statut de l'équipe sur la <a href=\"{url}\">page de "
"l'équipe</a>."
#: registration/models.py:632
#: registration/models.py:635
#, python-brace-format
msgid ""
"There are {valid} validated payments, {pending} pending and {invalid} "
@@ -3419,11 +3452,11 @@ msgstr ""
"invalides pour le tournoi {tournament}. Vous pouvez vérifier le statut des "
"paiements sur la <a href=\"{url}\">liste des paiements</a>."
#: registration/models.py:639
#: registration/models.py:642
msgid "Payments"
msgstr "Paiements"
#: registration/models.py:663 registration/models.py:674
#: registration/models.py:666 registration/models.py:677
#, python-brace-format
msgid ""
"<p>You are in the jury of the pool {pool} for the tournament of "
@@ -3432,7 +3465,7 @@ msgstr ""
"<p>Vous êtes dans le jury de la poule {pool} pour le tournoi {tournament}. "
"Vous pouvez trouver la page de la poule <a href='{pool_url}'>ici</a>.</p>"
#: registration/models.py:687
#: registration/models.py:690
#, python-brace-format
msgid ""
"<p>You don't have given any note as a jury for the passage {passage} in the "
@@ -3443,15 +3476,15 @@ msgstr ""
"{passage} dans la poule {pool} de {tournament}. Vous pouvez donner vos notes "
"<a href='{passage_url}'>ici</a>.</p>"
#: registration/models.py:703
#: registration/models.py:706
msgid "volunteer registration"
msgstr "inscription de bénévole"
#: registration/models.py:704
#: registration/models.py:707
msgid "volunteer registrations"
msgstr "inscriptions de bénévoles"
#: registration/models.py:725
#: registration/models.py:728
msgid ""
"If set to true, then one payment is made for the full team, for example if "
"the school pays for all."
@@ -3459,100 +3492,100 @@ msgstr ""
"Si vrai, alors un seul paiement est fait pour toute l'équipe, par exemple si "
"le lycée paie pour tout le monde."
#: registration/models.py:730
#: registration/models.py:733
msgid "total amount"
msgstr "montant total"
#: registration/models.py:731
#: registration/models.py:734
msgid "Corresponds to the total required amount to pay, in euros."
msgstr "Correspond au montant total à payer, en euros."
#: registration/models.py:736
#: registration/models.py:739
msgid "token"
msgstr "jeton"
#: registration/models.py:739
#: registration/models.py:742
msgid "A token to authorize external users to make this payment."
msgstr "Un jeton pour autoriser des utilisateurs externes à faire ce paiement."
#: registration/models.py:743
#: registration/models.py:746
msgid "for final tournament"
msgstr "pour la finale"
#: registration/models.py:748
#: registration/models.py:751
msgid "type"
msgstr "type"
#: registration/models.py:751
#: registration/models.py:754
msgid "No payment"
msgstr "Pas de paiement"
#: registration/models.py:752
#: registration/models.py:755
#: registration/templates/registration/payment_form.html:72
msgid "Credit card"
msgstr "Carte bancaire"
#: registration/models.py:753
#: registration/models.py:756
msgid "Scholarship"
msgstr "Notification de bourse"
#: registration/models.py:754
#: registration/models.py:757
#: registration/templates/registration/payment_form.html:77
msgid "Bank transfer"
msgstr "Virement bancaire"
#: registration/models.py:755
#: registration/models.py:758
msgid "Other (please indicate)"
msgstr "Autre (veuillez spécifier)"
#: registration/models.py:756
#: registration/models.py:759
msgid "The tournament is free"
msgstr "Le tournoi est gratuit"
#: registration/models.py:763
#: registration/models.py:766
msgid "Hello Asso checkout intent ID"
msgstr "ID de l'intention de paiement Hello Asso"
#: registration/models.py:770
#: registration/models.py:773
msgid "receipt"
msgstr "justificatif"
#: registration/models.py:771
#: registration/models.py:774
msgid "only if you have a scholarship or if you chose a bank transfer."
msgstr ""
"Nécessaire seulement si vous déclarez être boursièr⋅e ou si vous payez par "
"virement bancaire."
#: registration/models.py:778
#: registration/models.py:781
msgid "additional information"
msgstr "informations additionnelles"
#: registration/models.py:779
#: registration/models.py:782
msgid "To help us to find your payment."
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
#: registration/models.py:785
#: registration/models.py:788
msgid "payment valid"
msgstr "paiement valide"
#: registration/models.py:845
#: registration/models.py:848
msgid "Reminder for your payment"
msgstr "Rappel pour votre paiement"
#: registration/models.py:856
#: registration/models.py:859
msgid "Payment confirmation"
msgstr "Confirmation de paiement"
#: registration/models.py:878
#: registration/models.py:881
#, python-brace-format
msgid "Payment of {registrations}"
msgstr "Paiements de {registrations}"
#: registration/models.py:881
#: registration/models.py:884
msgid "payment"
msgstr "paiement"
#: registration/models.py:882
#: registration/models.py:885
msgid "payments"
msgstr "paiements"
@@ -4826,6 +4859,25 @@ msgstr ""
"Si vous ne finalisez pas votre inscription avant la date limite indiquée, "
"vous ne pourrez malheureusement pas participer au 𝕋𝔽𝕁𝕄²."
#: tfjm/templates/messages.html:4
msgid "Dates pending"
msgstr "Dates en attentes"
#: tfjm/templates/messages.html:6
msgid ""
"Since the dates for the tournaments in Bordeaux, Strasbourg, Metz and "
"Occitanie have not yet been set, we kindly invite the teams concerned to "
"wait a little longer. If you wish, you may register for another tournament "
"and send us an email to let us know of your interest; we will keep you "
"informed as soon as the final dates are confirmed.\n"
msgstr ""
"Les dates des tournois de Bordeaux, Strasbourg, Metz et Occitanie nétant pas "
"encore fixées, nous invitons pour le moment les équipes de ces tournois à "
"patienter. Vous pouvez si vous le souhaitez, vous inscrire ailleurs et nous "
"envoyer un mail pour nous informer de votre intérêt : nous vous tiendrons "
"ainsi au courant des avancées concernant les dates définitives.\n"
#: tfjm/templates/navbar.html:17 tfjm/urls.py:33
msgid "Home"
msgstr "Accueil"

View File

@@ -251,7 +251,18 @@ class CoachRegistrationForm(forms.ModelForm):
"""
A coach can tell its professional activity.
"""
ACCOMPANYING_CONFIRM_CHOICES = [
("presence", _("I undertake to be present throughout the entire tournament weekend alongside the team (including overnight stays).")),
("rules", _("I undertake to respond to the team's (non-mathematical) problems and not to hesitate to discuss them with the tournament organisers, who will be able to help.")),
("cancelling", _("In case of absence, I undertake to notify the organisers as soon as possible, providing a replacement if possible.")),
]
confirm_accompanying = forms.MultipleChoiceField(
required=False,
widget=forms.CheckboxSelectMultiple,
choices=ACCOMPANYING_CONFIRM_CHOICES,
label=_("Responsabilities of accompanying coaches")
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not settings.SUGGEST_ANIMATH:
@@ -259,9 +270,21 @@ class CoachRegistrationForm(forms.ModelForm):
class Meta:
model = CoachRegistration
fields = ('team', 'is_scientific_coach', 'is_accompanying_coach', 'gender', 'address', 'zip_code', 'city', 'country', 'phone_number',
fields = ('team', 'is_scientific_coach', 'is_accompanying_coach', 'confirm_accompanying', 'gender', 'address', 'zip_code', 'city', 'country', 'phone_number',
'last_degree', 'professional_activity', 'health_issues', 'housing_constraints',
'give_contact_to_animath', 'email_confirmed')
def clean(self):
cleaned = super().clean()
if cleaned.get("is_accompanying_coach"):
selected = set(cleaned.get("confirm_accompanying") or [])
required = {key for key, _ in self.ACCOMPANYING_CONFIRM_CHOICES}
if selected != required:
self.add_error(
"confirm_accompanying",
_("Please tick all the required confirmations."),
)
return cleaned
class VolunteerRegistrationForm(forms.ModelForm):

View File

@@ -51,15 +51,33 @@
<script>
document.addEventListener('DOMContentLoaded', () => {
let role_elem = document.getElementById("id_role")
function setup_requirements() {
const main = document.getElementById('id_is_accompanying_coach');
const group = document.getElementById('div_id_confirm_accompanying');
function toggle(){
if(main.checked) {
group.style.display = "block";
} else {
group.style.display = "none";
}
}
main.addEventListener('change', toggle);
toggle();
}
function updateView () {
let selected_role = role_elem.options[role_elem.selectedIndex].value
if (selected_role === "participant")
document.getElementById("registration_form").innerHTML = document.getElementById("student_registration_form").innerHTML
else
document.getElementById("registration_form").innerHTML = document.getElementById("coach_registration_form").innerHTML
setup_requirements();
}
role_elem.addEventListener('change', updateView)
updateView()
})
</script>
{% endblock %}

View File

@@ -1,11 +1,10 @@
<div id="messages">
<div class="alert alert-info fade show" role="alert">
<h2>Dates en attente</h2>
<p>Les dates des tournois de Bordeaux, Strasbourg, Metz et Occitanie nétant pas encore fixées,
nous invitons pour le moment les équipes de ces tournois à patienter. <br />
Vous pouvez si vous le souhaitez, vous inscrire ailleurs et nous envoyer un mail pour
nous informer de votre intérêt : nous vous tiendrons ainsi au courant des avancées
concernant les dates définitives.
{% load i18n %}
<h2>{% trans "Dates pending" %}</h2>
<p>{% blocktrans %}Since the dates for the tournaments in Bordeaux, Strasbourg, Metz and Occitanie have not yet been set, we kindly invite the teams concerned to wait a little longer. If you wish, you may register for another tournament and send us an email to let us know of your interest; we will keep you informed as soon as the final dates are confirmed.
{% endblocktrans %}
</p>
</div>
{% for message in messages %}