mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2024-12-24 18:22:24 +00:00
Send email after team final selection
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
parent
7073f64aa6
commit
7a0b93b151
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: TFJM\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-04-07 12:35+0200\n"
|
||||
"POT-Creation-Date: 2024-04-07 13:39+0200\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"
|
||||
@ -31,7 +31,7 @@ msgstr "équipes"
|
||||
#: participation/admin.py:79 participation/admin.py:140
|
||||
#: participation/admin.py:171 participation/models.py:656
|
||||
#: participation/models.py:680 participation/models.py:886
|
||||
#: registration/models.py:722
|
||||
#: registration/models.py:748
|
||||
#: registration/templates/registration/payment_form.html:53
|
||||
msgid "tournament"
|
||||
msgstr "tournoi"
|
||||
@ -334,7 +334,7 @@ msgstr "Continuer le tirage"
|
||||
#: draw/templates/draw/tournament_content.html:216 participation/admin.py:167
|
||||
#: participation/models.py:252 participation/models.py:671
|
||||
#: participation/templates/participation/tournament_harmonize.html:15
|
||||
#: registration/models.py:157 registration/models.py:713
|
||||
#: registration/models.py:157 registration/models.py:739
|
||||
#: registration/tables.py:39
|
||||
#: registration/templates/registration/payment_form.html:52
|
||||
msgid "team"
|
||||
@ -720,7 +720,7 @@ msgstr ""
|
||||
"L'équipe {trigram} n'a pas encore été validée par les organisateurices. "
|
||||
"Merci de patienter."
|
||||
|
||||
#: participation/models.py:196 registration/models.py:541
|
||||
#: participation/models.py:196 registration/models.py:567
|
||||
msgid "Pending validation"
|
||||
msgstr "Validation en attente"
|
||||
|
||||
@ -864,12 +864,12 @@ msgid ""
|
||||
"<a href='{url}'>your participation page</a>.</p>"
|
||||
msgstr ""
|
||||
"<p>Les solutions pour le tournoi de {tournament} sont attendues pour le "
|
||||
"{date:%d/%m/%Y %H:%M}.</p><p>N'oubliez pas que vous pouvez seulement apporter "
|
||||
"des corrections mineures à vos solutions sans ajouter de nouvelles parties.</p>"
|
||||
"<p>Vous pouvez envoyer vos solutions sur <a href='{url}'>votre page de "
|
||||
"participation</a>.</p>"
|
||||
"{date:%d/%m/%Y %H:%M}.</p><p>N'oubliez pas que vous pouvez seulement "
|
||||
"apporter des corrections mineures à vos solutions sans ajouter de nouvelles "
|
||||
"parties.</p><p>Vous pouvez envoyer vos solutions sur <a href='{url}'>votre "
|
||||
"page de participation</a>.</p>"
|
||||
|
||||
#: participation/models.py:762 registration/models.py:566
|
||||
#: participation/models.py:762 registration/models.py:592
|
||||
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>."
|
||||
@ -879,7 +879,7 @@ msgstr ""
|
||||
"{date:%d/%m/%Y %H:%M}. Vous pouvez y participer sur <a href='{url}'>ce lien</"
|
||||
"a>.</p>"
|
||||
|
||||
#: participation/models.py:768 registration/models.py:573
|
||||
#: participation/models.py:768 registration/models.py:599
|
||||
msgid "Draw of solutions"
|
||||
msgstr "Tirage au sort des solutions"
|
||||
|
||||
@ -917,7 +917,7 @@ msgstr ""
|
||||
"href='{solution_url}'>problème {problem}</a>. Vous pouvez envoyer votre note "
|
||||
"de synthèse sur <a href='{passage_url}'>cette page</a>.</p>"
|
||||
|
||||
#: participation/models.py:813 registration/models.py:588
|
||||
#: participation/models.py:813 registration/models.py:614
|
||||
msgid "First round"
|
||||
msgstr "Premier tour"
|
||||
|
||||
@ -930,7 +930,7 @@ msgstr ""
|
||||
"<p>Pour le second tour, vous défendrez <a href='{solution_url}'>votre "
|
||||
"solution du problème {problem}</a>.</p>"
|
||||
|
||||
#: participation/models.py:856 registration/models.py:599
|
||||
#: participation/models.py:856 registration/models.py:625
|
||||
msgid "Second round"
|
||||
msgstr "Second tour"
|
||||
|
||||
@ -1623,7 +1623,7 @@ msgid "Payment of"
|
||||
msgstr "Paiement de"
|
||||
|
||||
#: participation/templates/participation/team_detail.html:160
|
||||
#: registration/models.py:643
|
||||
#: registration/models.py:669
|
||||
msgid "grouped"
|
||||
msgstr "groupé"
|
||||
|
||||
@ -1826,7 +1826,7 @@ msgid "Rank"
|
||||
msgstr "Rang"
|
||||
|
||||
#: participation/templates/participation/tournament_harmonize.html:16
|
||||
#: registration/models.py:614
|
||||
#: registration/models.py:640
|
||||
msgid "Note"
|
||||
msgstr "Note"
|
||||
|
||||
@ -2010,88 +2010,88 @@ msgstr "Notes dissimulées !"
|
||||
msgid "Harmonize notes of {tournament} - Day {round}"
|
||||
msgstr "Harmoniser les notes de {tournament} - Jour {round}"
|
||||
|
||||
#: participation/views.py:885
|
||||
#: participation/views.py:893
|
||||
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:1002
|
||||
#: participation/views.py:1010
|
||||
#, python-brace-format
|
||||
msgid "Solutions of team {trigram}.zip"
|
||||
msgstr "Solutions de l'équipe {trigram}.zip"
|
||||
|
||||
#: participation/views.py:1002
|
||||
#: participation/views.py:1010
|
||||
#, python-brace-format
|
||||
msgid "Syntheses of team {trigram}.zip"
|
||||
msgstr "Notes de synthèse de l'équipe {trigram}.zip"
|
||||
|
||||
#: participation/views.py:1019 participation/views.py:1034
|
||||
#: participation/views.py:1027 participation/views.py:1042
|
||||
#, python-brace-format
|
||||
msgid "Solutions of {tournament}.zip"
|
||||
msgstr "Solutions de {tournament}.zip"
|
||||
|
||||
#: participation/views.py:1019 participation/views.py:1034
|
||||
#: participation/views.py:1027 participation/views.py:1042
|
||||
#, python-brace-format
|
||||
msgid "Syntheses of {tournament}.zip"
|
||||
msgstr "Notes de synthèse de {tournament}.zip"
|
||||
|
||||
#: participation/views.py:1043
|
||||
#: participation/views.py:1051
|
||||
#, python-brace-format
|
||||
msgid "Solutions for pool {pool} of tournament {tournament}.zip"
|
||||
msgstr "Solutions pour la poule {pool} du tournoi {tournament}.zip"
|
||||
|
||||
#: participation/views.py:1044
|
||||
#: participation/views.py:1052
|
||||
#, python-brace-format
|
||||
msgid "Syntheses for pool {pool} of tournament {tournament}.zip"
|
||||
msgstr "Notes de synthèses pour la poule {pool} du tournoi {tournament}.zip"
|
||||
|
||||
#: participation/views.py:1086
|
||||
#: participation/views.py:1094
|
||||
#, python-brace-format
|
||||
msgid "Jury of pool {pool} for {tournament} with teams {teams}"
|
||||
msgstr "Jury de la poule {pool} pour {tournament} avec les équipes {teams}"
|
||||
|
||||
#: participation/views.py:1102
|
||||
#: participation/views.py:1110
|
||||
#, python-brace-format
|
||||
msgid "The jury {name} is already in the pool!"
|
||||
msgstr "{name} est déjà dans la poule !"
|
||||
|
||||
#: participation/views.py:1122
|
||||
#: participation/views.py:1130
|
||||
msgid "New TFJM² jury account"
|
||||
msgstr "Nouveau compte de juré⋅e pour le TFJM²"
|
||||
|
||||
#: participation/views.py:1143
|
||||
#: participation/views.py:1151
|
||||
#, python-brace-format
|
||||
msgid "The jury {name} has been successfully added!"
|
||||
msgstr "{name} a été ajouté⋅e avec succès en tant que juré⋅e !"
|
||||
|
||||
#: participation/views.py:1179
|
||||
#: participation/views.py:1187
|
||||
#, python-brace-format
|
||||
msgid "The jury {name} has been successfully removed!"
|
||||
msgstr "{name} a été retiré⋅e avec succès du jury !"
|
||||
|
||||
#: participation/views.py:1205
|
||||
#: participation/views.py:1213
|
||||
#, python-brace-format
|
||||
msgid "The jury {name} has been successfully promoted president!"
|
||||
msgstr "{name} a été nommé⋅e président⋅e du jury !"
|
||||
|
||||
#: participation/views.py:1233
|
||||
#: participation/views.py:1241
|
||||
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:1250
|
||||
#: participation/views.py:1258
|
||||
msgid "Notes were successfully uploaded."
|
||||
msgstr "Les notes ont bien été envoyées."
|
||||
|
||||
#: participation/views.py:1883
|
||||
#: participation/views.py:1891
|
||||
#, python-brace-format
|
||||
msgid "Notation sheets of pool {pool} of {tournament}.zip"
|
||||
msgstr "Feuilles de notations pour la poule {pool} du tournoi {tournament}.zip"
|
||||
|
||||
#: participation/views.py:1888
|
||||
#: participation/views.py:1896
|
||||
#, python-brace-format
|
||||
msgid "Notation sheets of {tournament}.zip"
|
||||
msgstr "Feuilles de notation de {tournament}.zip"
|
||||
|
||||
#: participation/views.py:2065
|
||||
#: participation/views.py:2073
|
||||
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."
|
||||
|
||||
@ -2130,7 +2130,7 @@ msgstr "rôle"
|
||||
msgid "participant"
|
||||
msgstr "participant⋅e"
|
||||
|
||||
#: registration/forms.py:25 registration/models.py:475
|
||||
#: registration/forms.py:25 registration/models.py:501
|
||||
msgid "coach"
|
||||
msgstr "encadrant⋅e"
|
||||
|
||||
@ -2174,7 +2174,7 @@ msgstr ""
|
||||
msgid "registration"
|
||||
msgstr "inscription"
|
||||
|
||||
#: registration/models.py:130 registration/models.py:639
|
||||
#: registration/models.py:130 registration/models.py:665
|
||||
msgid "registrations"
|
||||
msgstr "inscriptions"
|
||||
|
||||
@ -2284,71 +2284,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:293
|
||||
#: registration/models.py:297
|
||||
msgid "Team selected for the final tournament"
|
||||
msgstr "Équipe sélectionnée pour la finale"
|
||||
|
||||
#: registration/models.py:319
|
||||
msgid "participant registration"
|
||||
msgstr "inscription de participant⋅e"
|
||||
|
||||
#: registration/models.py:294
|
||||
#: registration/models.py:320
|
||||
msgid "participant registrations"
|
||||
msgstr "inscriptions de participant⋅es"
|
||||
|
||||
#: registration/models.py:303
|
||||
#: registration/models.py:329
|
||||
msgid "birth date"
|
||||
msgstr "date de naissance"
|
||||
|
||||
#: registration/models.py:309
|
||||
#: registration/models.py:335
|
||||
msgid "12th grade"
|
||||
msgstr "Terminale"
|
||||
|
||||
#: registration/models.py:310
|
||||
#: registration/models.py:336
|
||||
msgid "11th grade"
|
||||
msgstr "Première"
|
||||
|
||||
#: registration/models.py:311
|
||||
#: registration/models.py:337
|
||||
msgid "10th grade or lower"
|
||||
msgstr "Seconde ou inférieur"
|
||||
|
||||
#: registration/models.py:313
|
||||
#: registration/models.py:339
|
||||
msgid "student class"
|
||||
msgstr "classe"
|
||||
|
||||
#: registration/models.py:318
|
||||
#: registration/models.py:344
|
||||
msgid "school"
|
||||
msgstr "école"
|
||||
|
||||
#: registration/models.py:323
|
||||
#: registration/models.py:349
|
||||
msgid "responsible name"
|
||||
msgstr "nom d'un⋅e responsable légal⋅e"
|
||||
|
||||
#: registration/models.py:328
|
||||
#: registration/models.py:354
|
||||
msgid "responsible phone number"
|
||||
msgstr "numéro de téléphone d'un⋅e responsable légal⋅e"
|
||||
|
||||
#: registration/models.py:333
|
||||
#: registration/models.py:359
|
||||
msgid "responsible email address"
|
||||
msgstr "adresse e-mail d'un⋅e responsable légal⋅e"
|
||||
|
||||
#: registration/models.py:338
|
||||
#: registration/models.py:364
|
||||
msgid "parental authorization"
|
||||
msgstr "autorisation parentale"
|
||||
|
||||
#: registration/models.py:345
|
||||
#: registration/models.py:371
|
||||
msgid "parental authorization (final)"
|
||||
msgstr "autorisation parentale (finale)"
|
||||
|
||||
#: registration/models.py:352
|
||||
#: registration/models.py:378
|
||||
msgid "health sheet"
|
||||
msgstr "fiche sanitaire"
|
||||
|
||||
#: registration/models.py:359
|
||||
#: registration/models.py:385
|
||||
msgid "vaccine sheet"
|
||||
msgstr "carnet de vaccination"
|
||||
|
||||
#: registration/models.py:367
|
||||
#: registration/models.py:393
|
||||
msgid "student"
|
||||
msgstr "élève"
|
||||
|
||||
#: registration/models.py:378
|
||||
#: registration/models.py:404
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"You have not uploaded your parental authorization. You can do it by clicking "
|
||||
@ -2357,11 +2361,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:383 registration/models.py:443
|
||||
#: registration/models.py:409 registration/models.py:469
|
||||
msgid "Parental authorization"
|
||||
msgstr "Autorisation parentale"
|
||||
|
||||
#: registration/models.py:389
|
||||
#: registration/models.py:415
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"You have not uploaded your health sheet. You can do it by clicking on <a "
|
||||
@ -2370,11 +2374,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:394
|
||||
#: registration/models.py:420
|
||||
msgid "Health sheet"
|
||||
msgstr "Fiche sanitaire"
|
||||
|
||||
#: registration/models.py:400
|
||||
#: registration/models.py:426
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"You have not uploaded your vaccine sheet. You can do it by clicking on <a "
|
||||
@ -2383,11 +2387,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:405
|
||||
#: registration/models.py:431
|
||||
msgid "Vaccine sheet"
|
||||
msgstr "Carnet de vaccination"
|
||||
|
||||
#: registration/models.py:414
|
||||
#: registration/models.py:440
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"You have to pay {amount} € for your registration, or send a scholarship "
|
||||
@ -2398,15 +2402,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:420 registration/models.py:429
|
||||
#: registration/models.py:446 registration/models.py:455
|
||||
msgid "Payment"
|
||||
msgstr "Paiement"
|
||||
|
||||
#: registration/models.py:426
|
||||
#: registration/models.py:452
|
||||
msgid "Your payment is under approval."
|
||||
msgstr "Votre paiement est en cours de validation."
|
||||
|
||||
#: registration/models.py:437
|
||||
#: registration/models.py:463
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"You have not uploaded your parental authorization for the final tournament. "
|
||||
@ -2415,19 +2419,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:452
|
||||
#: registration/models.py:478
|
||||
msgid "student registration"
|
||||
msgstr "inscription d'élève"
|
||||
|
||||
#: registration/models.py:453
|
||||
#: registration/models.py:479
|
||||
msgid "student registrations"
|
||||
msgstr "inscriptions d'élève"
|
||||
|
||||
#: registration/models.py:464
|
||||
#: registration/models.py:490
|
||||
msgid "most recent degree in mathematics, computer science or physics"
|
||||
msgstr "Dernier diplôme obtenu en mathématiques, informatique ou physique"
|
||||
|
||||
#: registration/models.py:465
|
||||
#: registration/models.py:491
|
||||
msgid ""
|
||||
"Your most recent degree in maths, computer science or physics, or your last "
|
||||
"entrance exam (CAPES, Agrégation,…)"
|
||||
@ -2435,23 +2439,23 @@ msgstr ""
|
||||
"Votre dernier diplôme en mathématiques, informatique ou physique, ou votre "
|
||||
"dernier concours obtenu (CAPES, Agrégation, …)"
|
||||
|
||||
#: registration/models.py:470 registration/models.py:492
|
||||
#: registration/models.py:496 registration/models.py:518
|
||||
msgid "professional activity"
|
||||
msgstr "activité professionnelle"
|
||||
|
||||
#: registration/models.py:483
|
||||
#: registration/models.py:509
|
||||
msgid "coach registration"
|
||||
msgstr "inscription d'encadrant⋅e"
|
||||
|
||||
#: registration/models.py:484
|
||||
#: registration/models.py:510
|
||||
msgid "coach registrations"
|
||||
msgstr "inscriptions d'encadrant⋅es"
|
||||
|
||||
#: registration/models.py:496
|
||||
#: registration/models.py:522
|
||||
msgid "administrator"
|
||||
msgstr "administrateur⋅rice"
|
||||
|
||||
#: registration/models.py:497
|
||||
#: registration/models.py:523
|
||||
msgid ""
|
||||
"An administrator has all rights. Please don't give this right to all juries "
|
||||
"and volunteers."
|
||||
@ -2459,15 +2463,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:507
|
||||
#: registration/models.py:533
|
||||
msgid "admin"
|
||||
msgstr "admin"
|
||||
|
||||
#: registration/models.py:507
|
||||
#: registration/models.py:533
|
||||
msgid "volunteer"
|
||||
msgstr "bénévole"
|
||||
|
||||
#: registration/models.py:520
|
||||
#: registration/models.py:546
|
||||
msgid ""
|
||||
"Registrations for tournament {tournament} are closing on {date:%Y-%m-%d %H:"
|
||||
"%M}. There are for now {validated_teams} validated teams (+ {pending_teams} "
|
||||
@ -2477,11 +2481,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:528
|
||||
#: registration/models.py:554
|
||||
msgid "Registrations"
|
||||
msgstr "Inscriptions"
|
||||
|
||||
#: registration/models.py:535
|
||||
#: registration/models.py:561
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"The team {trigram} requested to be validated for the tournament of "
|
||||
@ -2492,7 +2496,7 @@ msgstr ""
|
||||
"Vous pouvez vérifier le statut de l'équipe sur la <a href=\"{url}\">page de "
|
||||
"l'équipe</a>."
|
||||
|
||||
#: registration/models.py:552
|
||||
#: registration/models.py:578
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"There are {valid} validated payments, {pending} pending and {invalid} "
|
||||
@ -2503,11 +2507,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:559
|
||||
#: registration/models.py:585
|
||||
msgid "Payments"
|
||||
msgstr "Paiements"
|
||||
|
||||
#: registration/models.py:583 registration/models.py:594
|
||||
#: registration/models.py:609 registration/models.py:620
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"<p>You are in the jury of the pool {pool} for the tournament of "
|
||||
@ -2516,7 +2520,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:607
|
||||
#: registration/models.py:633
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"<p>You don't have given any note as a jury for the passage {passage} in the "
|
||||
@ -2527,15 +2531,15 @@ msgstr ""
|
||||
"{passage} dans la poule {pool} de {tournament}. Vous pouvez donner vos notes "
|
||||
"<a href='{passage_url}'>ici</a>.</p>"
|
||||
|
||||
#: registration/models.py:623
|
||||
#: registration/models.py:649
|
||||
msgid "volunteer registration"
|
||||
msgstr "inscription de bénévole"
|
||||
|
||||
#: registration/models.py:624
|
||||
#: registration/models.py:650
|
||||
msgid "volunteer registrations"
|
||||
msgstr "inscriptions de bénévoles"
|
||||
|
||||
#: registration/models.py:645
|
||||
#: registration/models.py:671
|
||||
msgid ""
|
||||
"If set to true, then one payment is made for the full team, for example if "
|
||||
"the school pays for all."
|
||||
@ -2543,100 +2547,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:650
|
||||
#: registration/models.py:676
|
||||
msgid "total amount"
|
||||
msgstr "montant total"
|
||||
|
||||
#: registration/models.py:651
|
||||
#: registration/models.py:677
|
||||
msgid "Corresponds to the total required amount to pay, in euros."
|
||||
msgstr "Correspond au montant total à payer, en euros."
|
||||
|
||||
#: registration/models.py:656
|
||||
#: registration/models.py:682
|
||||
msgid "token"
|
||||
msgstr "jeton"
|
||||
|
||||
#: registration/models.py:659
|
||||
#: registration/models.py:685
|
||||
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:663
|
||||
#: registration/models.py:689
|
||||
msgid "for final tournament"
|
||||
msgstr "pour la finale"
|
||||
|
||||
#: registration/models.py:668
|
||||
#: registration/models.py:694
|
||||
msgid "type"
|
||||
msgstr "type"
|
||||
|
||||
#: registration/models.py:671
|
||||
#: registration/models.py:697
|
||||
msgid "No payment"
|
||||
msgstr "Pas de paiement"
|
||||
|
||||
#: registration/models.py:672
|
||||
#: registration/models.py:698
|
||||
#: registration/templates/registration/payment_form.html:72
|
||||
msgid "Credit card"
|
||||
msgstr "Carte bancaire"
|
||||
|
||||
#: registration/models.py:673
|
||||
#: registration/models.py:699
|
||||
msgid "Scholarship"
|
||||
msgstr "Notification de bourse"
|
||||
|
||||
#: registration/models.py:674
|
||||
#: registration/models.py:700
|
||||
#: registration/templates/registration/payment_form.html:77
|
||||
msgid "Bank transfer"
|
||||
msgstr "Virement bancaire"
|
||||
|
||||
#: registration/models.py:675
|
||||
#: registration/models.py:701
|
||||
msgid "Other (please indicate)"
|
||||
msgstr "Autre (veuillez spécifier)"
|
||||
|
||||
#: registration/models.py:676
|
||||
#: registration/models.py:702
|
||||
msgid "The tournament is free"
|
||||
msgstr "Le tournoi est gratuit"
|
||||
|
||||
#: registration/models.py:683
|
||||
#: registration/models.py:709
|
||||
msgid "Hello Asso checkout intent ID"
|
||||
msgstr "ID de l'intention de paiement Hello Asso"
|
||||
|
||||
#: registration/models.py:690
|
||||
#: registration/models.py:716
|
||||
msgid "receipt"
|
||||
msgstr "justificatif"
|
||||
|
||||
#: registration/models.py:691
|
||||
#: registration/models.py:717
|
||||
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:698
|
||||
#: registration/models.py:724
|
||||
msgid "additional information"
|
||||
msgstr "informations additionnelles"
|
||||
|
||||
#: registration/models.py:699
|
||||
#: registration/models.py:725
|
||||
msgid "To help us to find your payment."
|
||||
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
|
||||
|
||||
#: registration/models.py:705
|
||||
#: registration/models.py:731
|
||||
msgid "payment valid"
|
||||
msgstr "paiement valide"
|
||||
|
||||
#: registration/models.py:765
|
||||
#: registration/models.py:791
|
||||
msgid "Reminder for your payment"
|
||||
msgstr "Rappel pour votre paiement"
|
||||
|
||||
#: registration/models.py:776
|
||||
#: registration/models.py:802
|
||||
msgid "Payment confirmation"
|
||||
msgstr "Confirmation de paiement"
|
||||
|
||||
#: registration/models.py:798
|
||||
#: registration/models.py:824
|
||||
#, python-brace-format
|
||||
msgid "Payment of {registrations}"
|
||||
msgstr "Paiements de {registrations}"
|
||||
|
||||
#: registration/models.py:801
|
||||
#: registration/models.py:827
|
||||
msgid "payment"
|
||||
msgstr "paiement"
|
||||
|
||||
#: registration/models.py:802
|
||||
#: registration/models.py:828
|
||||
msgid "payments"
|
||||
msgstr "paiements"
|
||||
|
||||
|
@ -856,6 +856,8 @@ class SelectTeamFinalView(VolunteerMixin, DetailView):
|
||||
final_sol: Solution
|
||||
with open(regional_sol.file.path, 'rb') as f:
|
||||
final_sol.file.save(regional_sol.file.name, f)
|
||||
for registration in self.participation.team.participants:
|
||||
registration.send_email_final_selection()
|
||||
return redirect(reverse_lazy("participation:tournament_detail", args=(tournament.pk,)))
|
||||
|
||||
|
||||
|
@ -289,6 +289,32 @@ class ParticipantRegistration(Registration):
|
||||
|
||||
return informations
|
||||
|
||||
def send_email_final_selection(self):
|
||||
"""
|
||||
The team is selected for final.
|
||||
"""
|
||||
translation.activate('fr')
|
||||
subject = "[TFJM²] " + str(_("Team selected for the final tournament"))
|
||||
site = Site.objects.first()
|
||||
from participation.models import Tournament
|
||||
tournament = Tournament.final_tournament()
|
||||
payment = self.payments.filter(final=True).first() if self.is_student else None
|
||||
message = loader.render_to_string('registration/mails/final_selection.txt',
|
||||
{
|
||||
'user': self.user,
|
||||
'domain': site.domain,
|
||||
'tournament': tournament,
|
||||
'payment': payment,
|
||||
})
|
||||
html = loader.render_to_string('registration/mails/final_selection.html',
|
||||
{
|
||||
'user': self.user,
|
||||
'domain': site.domain,
|
||||
'tournament': tournament,
|
||||
'payment': payment,
|
||||
})
|
||||
self.user.email_user(subject, message, html_message=html)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("participant registration")
|
||||
verbose_name_plural = _("participant registrations")
|
||||
|
@ -0,0 +1,75 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Bonjour {{ user.registration }},
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Félicitations ! Votre équipe {{ user.registration.team.name }} ({{ user.registration.team.trigram }})
|
||||
est sélectionnée pour le tournoi final du TFJM² !
|
||||
</p>
|
||||
|
||||
<p>
|
||||
La finale aura lieu du {{ tournament.date_start|date:"d/m/Y" }} au {{ tournament.date_end|date:"d/m/Y" }}
|
||||
à : {{ tournament.place }}.
|
||||
Les organisateurices de la finale vous recontacteront pour plus de détails.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
D'ores-et-déjà, vous pouvez soumettre votre autorisation de droit à l'image spécifique à la finale sur votre espace personnel :
|
||||
<a href="https://{{ domain }}{% url 'registration:user_detail' pk=user.pk %}">
|
||||
https://{{ domain }}{% url 'registration:user_detail' pk=user.pk %}
|
||||
</a>.
|
||||
{% if user.registration.is_student and user.registration.under_18_final %}
|
||||
Vous pouvez également transmettre puisque vous êtes mineur⋅e votre autorisation parentale spécifique pour la finale sur la même page.
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% if tournament.price > 0 %}
|
||||
{% if user.registration.is_student %}
|
||||
{% if payment.type == "scholarship" %}
|
||||
Votre statut de boursièr⋅e déjà enregistré vous exempte à nouveau des frais de participation de la finale.
|
||||
{% else %}
|
||||
Vous devez régler les frais de participation à la finale de {{ tournament.price }} €.
|
||||
Rendez-vous pour cela sur la page du paiement :
|
||||
<a href="https://{{ domain }}{% url 'registration:update_payment' pk=payment.pk %}">
|
||||
https://{{ domain }}{% url 'registration:update_payment' pk=payment.pk %}
|
||||
</a>.
|
||||
{% endif %}
|
||||
{% else %}
|
||||
En tant qu'encadrant⋅e, vous n'avez toujours rien à payer, mais veillez bien à ce que les membres de votre équipe
|
||||
règlent les frais de participation à la finale de {{ tournament.price }} €.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Conformément au règlement du TFJM², vous pouvez soumettre de nouvelles versions de vos solutions,
|
||||
pour améliorer vos explications, corriger des erreurs mineures ou la mise en page, ou supprimer
|
||||
des éléments faux, mais il vous est en revanche interdit d'ajouter des résultats ou des preuves
|
||||
ou de corriger des erreurs majeures.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Pour mettre à jour vos solutions, rendez-vous sur la page de votre équipe :
|
||||
<a href="https://{{ domain }}{% url 'participation:participation_detail' pk=user.registration.team.participation.pk %}">
|
||||
https://{{ domain }}{% url 'participation:participation_detail' pk=user.registration.team.participation.pk %}
|
||||
</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cordialement,
|
||||
</p>
|
||||
|
||||
--
|
||||
<p>
|
||||
L'équipe du TFJM²
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,38 @@
|
||||
Bonjour {{ user.registration }},
|
||||
|
||||
Félicitations ! Votre équipe {{ user.registration.team.name }} ({{ user.registration.team.trigram }}) est sélectionnée pour le tournoi final du TFJM² !
|
||||
|
||||
La finale aura lieu du {{ tournament.date_start|date:"d/m/Y" }} au {{ tournament.date_end|date:"d/m/Y" }} à : {{ tournament.place }}.
|
||||
Les organisateurices de la finale vous recontacteront pour plus de détails.
|
||||
|
||||
D'ores-et-déjà, vous pouvez soumettre votre autorisation de droit à l'image spécifique à la finale sur votre espace personnel :
|
||||
https://{{ domain }}{% url 'registration:user_detail' pk=user.pk %}
|
||||
{% if user.registration.is_student and user.registration.under_18_final %}
|
||||
Vous pouvez également transmettre puisque vous êtes mineur⋅e votre autorisation parentale spécifique pour la finale sur la même page.
|
||||
{% endif %}
|
||||
{% if tournament.price > 0 %}
|
||||
{% if user.registration.is_student %}
|
||||
{% if payment.type == "scholarship" %}
|
||||
Votre statut de boursièr⋅e déjà enregistré vous exempte à nouveau des frais de participation de la finale.
|
||||
{% else %}
|
||||
Vous devez régler les frais de participation à la finale de {{ tournament.price }} €.
|
||||
Rendez-vous pour cela sur la page du paiement :
|
||||
https://{{ domain }}{% url 'registration:update_payment' pk=payment.pk %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
En tant qu'encadrant⋅e, vous n'avez toujours rien à payer, mais veillez bien à ce que les membres de votre équipe
|
||||
règlent les frais de participation à la finale de {{ tournament.price }} €.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
Conformément au règlement du TFJM², vous pouvez soumettre de nouvelles versions de vos solutions,
|
||||
pour améliorer vos explications, corriger des erreurs mineures ou la mise en page, ou supprimer
|
||||
des éléments faux, mais il vous est en revanche interdit d'ajouter des résultats ou des preuves
|
||||
ou de corriger des erreurs majeures.
|
||||
|
||||
Pour mettre à jour vos solutions, rendez-vous sur la page de votre équipe :
|
||||
https://{{ domain }}{% url 'participation:participation_detail' pk=user.registration.team.participation.pk %}
|
||||
|
||||
Cordialement,
|
||||
|
||||
--
|
||||
L'équipe du TFJM²
|
Loading…
Reference in New Issue
Block a user