mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2024-12-25 06:22:22 +00:00
Display payment information on the sidebar
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
parent
672529382d
commit
850659bf48
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: TFJM\n"
|
"Project-Id-Version: TFJM\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-02-11 22:35+0100\n"
|
"POT-Creation-Date: 2024-02-11 23:19+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
|
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -22,19 +22,19 @@ msgid "API"
|
|||||||
msgstr "API"
|
msgstr "API"
|
||||||
|
|
||||||
#: draw/admin.py:16 draw/admin.py:28 draw/admin.py:44 participation/admin.py:44
|
#: draw/admin.py:16 draw/admin.py:28 draw/admin.py:44 participation/admin.py:44
|
||||||
#: participation/models.py:248 participation/tables.py:87
|
#: participation/models.py:250 participation/tables.py:87
|
||||||
msgid "teams"
|
msgid "teams"
|
||||||
msgstr "équipes"
|
msgstr "équipes"
|
||||||
|
|
||||||
#: draw/admin.py:40 draw/admin.py:56 draw/models.py:24
|
#: draw/admin.py:40 draw/admin.py:56 draw/models.py:24
|
||||||
#: participation/admin.py:16 participation/admin.py:73
|
#: participation/admin.py:16 participation/admin.py:73
|
||||||
#: participation/admin.py:104 participation/models.py:417
|
#: participation/admin.py:104 participation/models.py:419
|
||||||
#: participation/models.py:441 participation/models.py:474
|
#: participation/models.py:443 participation/models.py:512
|
||||||
msgid "tournament"
|
msgid "tournament"
|
||||||
msgstr "tournoi"
|
msgstr "tournoi"
|
||||||
|
|
||||||
#: draw/admin.py:60 draw/models.py:231 draw/models.py:426
|
#: draw/admin.py:60 draw/models.py:231 draw/models.py:426
|
||||||
#: participation/models.py:478
|
#: participation/models.py:516
|
||||||
msgid "round"
|
msgid "round"
|
||||||
msgstr "tour"
|
msgstr "tour"
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ msgstr "La poule en cours, où les équipes choisissent leurs problèmes"
|
|||||||
msgid "rounds"
|
msgid "rounds"
|
||||||
msgstr "tours"
|
msgstr "tours"
|
||||||
|
|
||||||
#: draw/models.py:254 participation/models.py:492
|
#: draw/models.py:254 participation/models.py:530
|
||||||
msgid "letter"
|
msgid "letter"
|
||||||
msgstr "lettre"
|
msgstr "lettre"
|
||||||
|
|
||||||
@ -207,17 +207,17 @@ msgid "Pool {letter}{number}"
|
|||||||
msgstr "Poule {letter}{number}"
|
msgstr "Poule {letter}{number}"
|
||||||
|
|
||||||
#: draw/models.py:407 draw/models.py:434 participation/admin.py:69
|
#: draw/models.py:407 draw/models.py:434 participation/admin.py:69
|
||||||
#: participation/admin.py:88 participation/models.py:544
|
#: participation/admin.py:88 participation/models.py:582
|
||||||
#: participation/models.py:553 participation/tables.py:83
|
#: participation/models.py:591 participation/tables.py:83
|
||||||
msgid "pool"
|
msgid "pool"
|
||||||
msgstr "poule"
|
msgstr "poule"
|
||||||
|
|
||||||
#: draw/models.py:408 participation/models.py:545
|
#: draw/models.py:408 participation/models.py:583
|
||||||
msgid "pools"
|
msgid "pools"
|
||||||
msgstr "poules"
|
msgstr "poules"
|
||||||
|
|
||||||
#: draw/models.py:420 participation/models.py:464 participation/models.py:714
|
#: draw/models.py:420 participation/models.py:502 participation/models.py:752
|
||||||
#: participation/models.py:744 participation/models.py:782
|
#: participation/models.py:782 participation/models.py:820
|
||||||
msgid "participation"
|
msgid "participation"
|
||||||
msgstr "participation"
|
msgstr "participation"
|
||||||
|
|
||||||
@ -241,8 +241,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1."
|
"L'ordre de choix dans la poule, entre 0 et la taille de la poule moins 1."
|
||||||
|
|
||||||
#: draw/models.py:457 draw/models.py:480 participation/models.py:567
|
#: draw/models.py:457 draw/models.py:480 participation/models.py:605
|
||||||
#: participation/models.py:751
|
#: participation/models.py:789
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Problem #{problem}"
|
msgid "Problem #{problem}"
|
||||||
msgstr "Problème n°{problem}"
|
msgstr "Problème n°{problem}"
|
||||||
@ -325,7 +325,7 @@ msgid "Continue draw"
|
|||||||
msgstr "Continuer le tirage"
|
msgstr "Continuer le tirage"
|
||||||
|
|
||||||
#: draw/templates/draw/tournament_content.html:216 participation/admin.py:100
|
#: draw/templates/draw/tournament_content.html:216 participation/admin.py:100
|
||||||
#: participation/models.py:247 participation/models.py:432
|
#: participation/models.py:249 participation/models.py:434
|
||||||
#: registration/models.py:146
|
#: registration/models.py:146
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "équipe"
|
msgstr "équipe"
|
||||||
@ -442,26 +442,26 @@ msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
|
|||||||
msgid "valid"
|
msgid "valid"
|
||||||
msgstr "valide"
|
msgstr "valide"
|
||||||
|
|
||||||
#: participation/admin.py:24 participation/models.py:453
|
#: participation/admin.py:24 participation/models.py:455
|
||||||
msgid "selected for final"
|
msgid "selected for final"
|
||||||
msgstr "sélectionnée pour la finale"
|
msgstr "sélectionnée pour la finale"
|
||||||
|
|
||||||
#: participation/admin.py:57 participation/admin.py:116
|
#: participation/admin.py:57 participation/admin.py:116
|
||||||
#: participation/models.py:574 participation/tables.py:111
|
#: participation/models.py:612 participation/tables.py:111
|
||||||
msgid "defender"
|
msgid "defender"
|
||||||
msgstr "défenseur⋅se"
|
msgstr "défenseur⋅se"
|
||||||
|
|
||||||
#: participation/admin.py:61 participation/models.py:581
|
#: participation/admin.py:61 participation/models.py:619
|
||||||
#: participation/models.py:794
|
#: participation/models.py:832
|
||||||
msgid "opponent"
|
msgid "opponent"
|
||||||
msgstr "opposant⋅e"
|
msgstr "opposant⋅e"
|
||||||
|
|
||||||
#: participation/admin.py:65 participation/models.py:588
|
#: participation/admin.py:65 participation/models.py:626
|
||||||
#: participation/models.py:795
|
#: participation/models.py:833
|
||||||
msgid "reporter"
|
msgid "reporter"
|
||||||
msgstr "rapporteur⋅e"
|
msgstr "rapporteur⋅e"
|
||||||
|
|
||||||
#: participation/admin.py:120 participation/models.py:749
|
#: participation/admin.py:120 participation/models.py:787
|
||||||
msgid "problem"
|
msgid "problem"
|
||||||
msgstr "numéro de problème"
|
msgstr "numéro de problème"
|
||||||
|
|
||||||
@ -484,13 +484,13 @@ msgstr "Aucune équipe n'a été trouvée avec ce code d'accès."
|
|||||||
#: participation/forms.py:86 participation/forms.py:351
|
#: participation/forms.py:86 participation/forms.py:351
|
||||||
#: registration/forms.py:122 registration/forms.py:144
|
#: registration/forms.py:122 registration/forms.py:144
|
||||||
#: registration/forms.py:166 registration/forms.py:188
|
#: registration/forms.py:166 registration/forms.py:188
|
||||||
#: registration/forms.py:234
|
#: registration/forms.py:235
|
||||||
msgid "The uploaded file size must be under 2 Mo."
|
msgid "The uploaded file size must be under 2 Mo."
|
||||||
msgstr "Le fichier envoyé doit peser moins de 2 Mo."
|
msgstr "Le fichier envoyé doit peser moins de 2 Mo."
|
||||||
|
|
||||||
#: participation/forms.py:88 registration/forms.py:124
|
#: participation/forms.py:88 registration/forms.py:124
|
||||||
#: registration/forms.py:146 registration/forms.py:168
|
#: registration/forms.py:146 registration/forms.py:168
|
||||||
#: registration/forms.py:190 registration/forms.py:236
|
#: registration/forms.py:190 registration/forms.py:237
|
||||||
msgid "The uploaded file must be a PDF, PNG of JPEG file."
|
msgid "The uploaded file must be a PDF, PNG of JPEG file."
|
||||||
msgstr "Le fichier envoyé doit être au format PDF, PNG ou JPEG."
|
msgstr "Le fichier envoyé doit être au format PDF, PNG ou JPEG."
|
||||||
|
|
||||||
@ -568,7 +568,7 @@ msgstr "Ce⋅tte défenseur⋅se ne travaille pas sur ce problème."
|
|||||||
msgid "The PDF file must not have more than 2 pages."
|
msgid "The PDF file must not have more than 2 pages."
|
||||||
msgstr "Le fichier PDF ne doit pas avoir plus de 2 pages."
|
msgstr "Le fichier PDF ne doit pas avoir plus de 2 pages."
|
||||||
|
|
||||||
#: participation/models.py:32 participation/models.py:258
|
#: participation/models.py:32 participation/models.py:260
|
||||||
#: participation/tables.py:17 participation/tables.py:33
|
#: participation/tables.py:17 participation/tables.py:33
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
@ -710,127 +710,163 @@ msgstr ""
|
|||||||
"L'équipe {trigram} n'a pas encore été validée par les organisateurices. "
|
"L'équipe {trigram} n'a pas encore été validée par les organisateurices. "
|
||||||
"Merci de patienter."
|
"Merci de patienter."
|
||||||
|
|
||||||
#: participation/models.py:193 registration/models.py:458
|
#: participation/models.py:193 registration/models.py:481
|
||||||
msgid "Pending validation"
|
msgid "Pending validation"
|
||||||
msgstr "Validation en attente"
|
msgstr "Validation en attente"
|
||||||
|
|
||||||
#: participation/models.py:244
|
#: participation/models.py:246
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Team {name} ({trigram})"
|
msgid "Team {name} ({trigram})"
|
||||||
msgstr "Équipe {name} ({trigram})"
|
msgstr "Équipe {name} ({trigram})"
|
||||||
|
|
||||||
#: participation/models.py:263
|
#: participation/models.py:265
|
||||||
msgid "start"
|
msgid "start"
|
||||||
msgstr "début"
|
msgstr "début"
|
||||||
|
|
||||||
#: participation/models.py:268
|
#: participation/models.py:270
|
||||||
msgid "end"
|
msgid "end"
|
||||||
msgstr "fin"
|
msgstr "fin"
|
||||||
|
|
||||||
#: participation/models.py:274
|
#: participation/models.py:276
|
||||||
#: participation/templates/participation/tournament_detail.html:18
|
#: participation/templates/participation/tournament_detail.html:18
|
||||||
msgid "place"
|
msgid "place"
|
||||||
msgstr "lieu"
|
msgstr "lieu"
|
||||||
|
|
||||||
#: participation/models.py:278
|
#: participation/models.py:280
|
||||||
msgid "max team count"
|
msgid "max team count"
|
||||||
msgstr "nombre maximal d'équipes"
|
msgstr "nombre maximal d'équipes"
|
||||||
|
|
||||||
#: participation/models.py:283
|
#: participation/models.py:285
|
||||||
#: participation/templates/participation/tournament_detail.html:21
|
#: participation/templates/participation/tournament_detail.html:21
|
||||||
msgid "price"
|
msgid "price"
|
||||||
msgstr "prix"
|
msgstr "prix"
|
||||||
|
|
||||||
#: participation/models.py:288
|
#: participation/models.py:290
|
||||||
#: participation/templates/participation/tournament_detail.html:24
|
#: participation/templates/participation/tournament_detail.html:24
|
||||||
msgid "remote"
|
msgid "remote"
|
||||||
msgstr "à distance"
|
msgstr "à distance"
|
||||||
|
|
||||||
#: participation/models.py:293
|
#: participation/models.py:295
|
||||||
msgid "limit date for registrations"
|
msgid "limit date for registrations"
|
||||||
msgstr "date limite d'inscription"
|
msgstr "date limite d'inscription"
|
||||||
|
|
||||||
#: participation/models.py:298
|
#: participation/models.py:300
|
||||||
msgid "limit date to upload solutions"
|
msgid "limit date to upload solutions"
|
||||||
msgstr "date limite pour envoyer les solutions"
|
msgstr "date limite pour envoyer les solutions"
|
||||||
|
|
||||||
#: participation/models.py:303
|
#: participation/models.py:305
|
||||||
msgid "random draw for solutions"
|
msgid "random draw for solutions"
|
||||||
msgstr "tirage au sort des solutions"
|
msgstr "tirage au sort des solutions"
|
||||||
|
|
||||||
#: participation/models.py:308
|
#: participation/models.py:310
|
||||||
msgid "limit date to upload the syntheses for the first phase"
|
msgid "limit date to upload the syntheses for the first phase"
|
||||||
msgstr "date limite pour envoyer les notes de synthèses pour la première phase"
|
msgstr "date limite pour envoyer les notes de synthèses pour la première phase"
|
||||||
|
|
||||||
#: participation/models.py:313
|
#: participation/models.py:315
|
||||||
msgid "date when the solutions for the second round become available"
|
msgid "date when the solutions for the second round become available"
|
||||||
msgstr "date à laquelle les solutions pour le second tour sont accessibles"
|
msgstr "date à laquelle les solutions pour le second tour sont accessibles"
|
||||||
|
|
||||||
#: participation/models.py:318
|
#: participation/models.py:320
|
||||||
msgid "limit date to upload the syntheses for the second phase"
|
msgid "limit date to upload the syntheses for the second phase"
|
||||||
msgstr "date limite d'envoi des notes de synthèse pour la seconde phase"
|
msgstr "date limite d'envoi des notes de synthèse pour la seconde phase"
|
||||||
|
|
||||||
#: participation/models.py:323
|
#: participation/models.py:325
|
||||||
#: participation/templates/participation/tournament_detail.html:48
|
#: participation/templates/participation/tournament_detail.html:48
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "description"
|
msgstr "description"
|
||||||
|
|
||||||
#: participation/models.py:329
|
#: participation/models.py:331
|
||||||
#: participation/templates/participation/tournament_detail.html:12
|
#: participation/templates/participation/tournament_detail.html:12
|
||||||
msgid "organizers"
|
msgid "organizers"
|
||||||
msgstr "organisateur⋅rices"
|
msgstr "organisateur⋅rices"
|
||||||
|
|
||||||
#: participation/models.py:334
|
#: participation/models.py:336
|
||||||
msgid "final"
|
msgid "final"
|
||||||
msgstr "finale"
|
msgstr "finale"
|
||||||
|
|
||||||
#: participation/models.py:418 registration/admin.py:93
|
#: participation/models.py:420 registration/admin.py:93
|
||||||
msgid "tournaments"
|
msgid "tournaments"
|
||||||
msgstr "tournois"
|
msgstr "tournois"
|
||||||
|
|
||||||
#: participation/models.py:447
|
#: participation/models.py:449
|
||||||
msgid "valid team"
|
msgid "valid team"
|
||||||
msgstr "équipe valide"
|
msgstr "équipe valide"
|
||||||
|
|
||||||
#: participation/models.py:448
|
#: participation/models.py:450
|
||||||
msgid "The participation got the validation of the organizers."
|
msgid "The participation got the validation of the organizers."
|
||||||
msgstr "La participation a été validée par les organisateur⋅rices."
|
msgstr "La participation a été validée par les organisateur⋅rices."
|
||||||
|
|
||||||
#: participation/models.py:454
|
#: participation/models.py:456
|
||||||
msgid "The team is selected for the final tournament."
|
msgid "The team is selected for the final tournament."
|
||||||
msgstr "L'équipe est sélectionnée pour la finale."
|
msgstr "L'équipe est sélectionnée pour la finale."
|
||||||
|
|
||||||
#: participation/models.py:461
|
#: participation/models.py:463
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Participation of the team {name} ({trigram})"
|
msgid "Participation of the team {name} ({trigram})"
|
||||||
msgstr "Participation de l'équipe {name} ({trigram})"
|
msgstr "Participation de l'équipe {name} ({trigram})"
|
||||||
|
|
||||||
#: participation/models.py:465 participation/models.py:498
|
#: participation/models.py:470
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"<p>The team {trigram} has {nb_missing_payments} missing payments. Each "
|
||||||
|
"member of the team must have a valid payment (or send a scholarship "
|
||||||
|
"notification) to participate to the tournament.</p><p>Participants that have "
|
||||||
|
"not paid yet are: {participants}.</p>"
|
||||||
|
msgstr ""
|
||||||
|
"<p>L'équipe {trigram} a {nb_missing_payments} paiements manquants. Chaque "
|
||||||
|
"membre de l'équipe doit avoir un paiement valide (ou envoyer une notification "
|
||||||
|
"de bourse) pour participer au tournoi.</p><p>Les participant⋅es qui n'ont pas "
|
||||||
|
"encore payé sont : {participants}.</p>"
|
||||||
|
|
||||||
|
#: participation/models.py:477
|
||||||
|
msgid "Missing payments"
|
||||||
|
msgstr "Paiements manquants"
|
||||||
|
|
||||||
|
#: participation/models.py:484
|
||||||
|
msgid ""
|
||||||
|
"<p>The solutions for the tournament of {tournament} are due on the {date:%Y-"
|
||||||
|
"%m-%d %H:%M}.</p><p>You have currently sent <strong>{nb_solutions}</strong> "
|
||||||
|
"solutions. We suggest to send at least <strong>{min_solutions}</strong> "
|
||||||
|
"different solutions.</p><p>You can upload your solutions on <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>Vous avez actuellement envoyé "
|
||||||
|
"<strong>{nb_solutions}</strong> solutions. Nous vous suggérons d'envoyer au "
|
||||||
|
"moins <strong>{min_solutions}</strong> solutions différentes.</p><p>Vous "
|
||||||
|
"pouvez envoyer vos solutions sur <a href='{url}'>votre page de "
|
||||||
|
"participation</a>.</p>"
|
||||||
|
|
||||||
|
#: participation/models.py:493
|
||||||
|
msgid "Solutions due"
|
||||||
|
msgstr "Rendu des solutions"
|
||||||
|
|
||||||
|
#: participation/models.py:503 participation/models.py:536
|
||||||
msgid "participations"
|
msgid "participations"
|
||||||
msgstr "participations"
|
msgstr "participations"
|
||||||
|
|
||||||
#: participation/models.py:480 participation/models.py:481
|
#: participation/models.py:518 participation/models.py:519
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Round {round}"
|
msgid "Round {round}"
|
||||||
msgstr "Tour {round}"
|
msgstr "Tour {round}"
|
||||||
|
|
||||||
#: participation/models.py:504
|
#: participation/models.py:542
|
||||||
msgid "juries"
|
msgid "juries"
|
||||||
msgstr "jurys"
|
msgstr "jurys"
|
||||||
|
|
||||||
#: participation/models.py:511
|
#: participation/models.py:549
|
||||||
msgid "BigBlueButton URL"
|
msgid "BigBlueButton URL"
|
||||||
msgstr "Lien BigBlueButton"
|
msgstr "Lien BigBlueButton"
|
||||||
|
|
||||||
#: participation/models.py:512
|
#: participation/models.py:550
|
||||||
msgid "The link of the BBB visio for this pool."
|
msgid "The link of the BBB visio for this pool."
|
||||||
msgstr "Le lien du salon BBB pour cette poule."
|
msgstr "Le lien du salon BBB pour cette poule."
|
||||||
|
|
||||||
#: participation/models.py:517
|
#: participation/models.py:555
|
||||||
msgid "results available"
|
msgid "results available"
|
||||||
msgstr "résultats disponibles"
|
msgstr "résultats disponibles"
|
||||||
|
|
||||||
#: participation/models.py:518
|
#: participation/models.py:556
|
||||||
msgid ""
|
msgid ""
|
||||||
"Check this case when results become accessible to teams. They stay "
|
"Check this case when results become accessible to teams. They stay "
|
||||||
"accessible to you. Only averages are given."
|
"accessible to you. Only averages are given."
|
||||||
@ -839,28 +875,28 @@ msgstr ""
|
|||||||
"Ils restent toujours accessibles pour vous. Seules les moyennes sont "
|
"Ils restent toujours accessibles pour vous. Seules les moyennes sont "
|
||||||
"communiquées."
|
"communiquées."
|
||||||
|
|
||||||
#: participation/models.py:538
|
#: participation/models.py:576
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Pool of day {round} for tournament {tournament} with teams {teams}"
|
msgid "Pool of day {round} for tournament {tournament} with teams {teams}"
|
||||||
msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}"
|
msgstr "Poule du jour {round} du tournoi {tournament} avec les équipes {teams}"
|
||||||
|
|
||||||
#: participation/models.py:558
|
#: participation/models.py:596
|
||||||
msgid "position"
|
msgid "position"
|
||||||
msgstr "position"
|
msgstr "position"
|
||||||
|
|
||||||
#: participation/models.py:565
|
#: participation/models.py:603
|
||||||
msgid "defended solution"
|
msgid "defended solution"
|
||||||
msgstr "solution défendue"
|
msgstr "solution défendue"
|
||||||
|
|
||||||
#: participation/models.py:598
|
#: participation/models.py:636
|
||||||
msgid "observer"
|
msgid "observer"
|
||||||
msgstr "observateur⋅rice"
|
msgstr "observateur⋅rice"
|
||||||
|
|
||||||
#: participation/models.py:603
|
#: participation/models.py:641
|
||||||
msgid "penalties"
|
msgid "penalties"
|
||||||
msgstr "pénalités"
|
msgstr "pénalités"
|
||||||
|
|
||||||
#: participation/models.py:605
|
#: participation/models.py:643
|
||||||
msgid ""
|
msgid ""
|
||||||
"Number of penalties for the defender. The defender will loose a 0.5 "
|
"Number of penalties for the defender. The defender will loose a 0.5 "
|
||||||
"coefficient per penalty."
|
"coefficient per penalty."
|
||||||
@ -868,124 +904,124 @@ msgstr ""
|
|||||||
"Nombre de pénalités pour l'équipe défenseuse. Elle perd un coefficient 0.5 "
|
"Nombre de pénalités pour l'équipe défenseuse. Elle perd un coefficient 0.5 "
|
||||||
"sur sa présentation orale par pénalité."
|
"sur sa présentation orale par pénalité."
|
||||||
|
|
||||||
#: participation/models.py:681 participation/models.py:684
|
#: participation/models.py:719 participation/models.py:722
|
||||||
#: participation/models.py:687 participation/models.py:690
|
#: participation/models.py:725 participation/models.py:728
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Team {trigram} is not registered in the pool."
|
msgid "Team {trigram} is not registered in the pool."
|
||||||
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
|
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
|
||||||
|
|
||||||
#: participation/models.py:695
|
#: participation/models.py:733
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Passage of {defender} for problem {problem}"
|
msgid "Passage of {defender} for problem {problem}"
|
||||||
msgstr "Passage de {defender} pour le problème {problem}"
|
msgstr "Passage de {defender} pour le problème {problem}"
|
||||||
|
|
||||||
#: participation/models.py:699 participation/models.py:708
|
#: participation/models.py:737 participation/models.py:746
|
||||||
#: participation/models.py:789 participation/models.py:831
|
#: participation/models.py:827 participation/models.py:869
|
||||||
msgid "passage"
|
msgid "passage"
|
||||||
msgstr "passage"
|
msgstr "passage"
|
||||||
|
|
||||||
#: participation/models.py:700
|
#: participation/models.py:738
|
||||||
msgid "passages"
|
msgid "passages"
|
||||||
msgstr "passages"
|
msgstr "passages"
|
||||||
|
|
||||||
#: participation/models.py:719
|
#: participation/models.py:757
|
||||||
msgid "difference"
|
msgid "difference"
|
||||||
msgstr "différence"
|
msgstr "différence"
|
||||||
|
|
||||||
#: participation/models.py:720
|
#: participation/models.py:758
|
||||||
msgid "Score to add/remove on the final score"
|
msgid "Score to add/remove on the final score"
|
||||||
msgstr "Score à ajouter/retrancher au score final"
|
msgstr "Score à ajouter/retrancher au score final"
|
||||||
|
|
||||||
#: participation/models.py:727
|
#: participation/models.py:765
|
||||||
msgid "tweak"
|
msgid "tweak"
|
||||||
msgstr "harmonisation"
|
msgstr "harmonisation"
|
||||||
|
|
||||||
#: participation/models.py:728
|
#: participation/models.py:766
|
||||||
msgid "tweaks"
|
msgid "tweaks"
|
||||||
msgstr "harmonisations"
|
msgstr "harmonisations"
|
||||||
|
|
||||||
#: participation/models.py:756
|
#: participation/models.py:794
|
||||||
msgid "solution for the final tournament"
|
msgid "solution for the final tournament"
|
||||||
msgstr "solution pour la finale"
|
msgstr "solution pour la finale"
|
||||||
|
|
||||||
#: participation/models.py:761 participation/models.py:800
|
#: participation/models.py:799 participation/models.py:838
|
||||||
msgid "file"
|
msgid "file"
|
||||||
msgstr "fichier"
|
msgstr "fichier"
|
||||||
|
|
||||||
#: participation/models.py:767
|
#: participation/models.py:805
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Solution of team {team} for problem {problem}"
|
msgid "Solution of team {team} for problem {problem}"
|
||||||
msgstr "Solution de l'équipe {team} pour le problème {problem}"
|
msgstr "Solution de l'équipe {team} pour le problème {problem}"
|
||||||
|
|
||||||
#: participation/models.py:769
|
#: participation/models.py:807
|
||||||
msgid "for final"
|
msgid "for final"
|
||||||
msgstr "pour la finale"
|
msgstr "pour la finale"
|
||||||
|
|
||||||
#: participation/models.py:772
|
#: participation/models.py:810
|
||||||
msgid "solution"
|
msgid "solution"
|
||||||
msgstr "solution"
|
msgstr "solution"
|
||||||
|
|
||||||
#: participation/models.py:773
|
#: participation/models.py:811
|
||||||
msgid "solutions"
|
msgid "solutions"
|
||||||
msgstr "solutions"
|
msgstr "solutions"
|
||||||
|
|
||||||
#: participation/models.py:806
|
#: participation/models.py:844
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
|
msgid "Synthesis of {team} as {type} for problem {problem} of {defender}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
|
"Note de synthèse de l'équipe {team} en tant que {type} pour le problème "
|
||||||
"{problem} de {defender}"
|
"{problem} de {defender}"
|
||||||
|
|
||||||
#: participation/models.py:814
|
#: participation/models.py:852
|
||||||
msgid "synthesis"
|
msgid "synthesis"
|
||||||
msgstr "note de synthèse"
|
msgstr "note de synthèse"
|
||||||
|
|
||||||
#: participation/models.py:815
|
#: participation/models.py:853
|
||||||
msgid "syntheses"
|
msgid "syntheses"
|
||||||
msgstr "notes de synthèse"
|
msgstr "notes de synthèse"
|
||||||
|
|
||||||
#: participation/models.py:824
|
#: participation/models.py:862
|
||||||
msgid "jury"
|
msgid "jury"
|
||||||
msgstr "jury"
|
msgstr "jury"
|
||||||
|
|
||||||
#: participation/models.py:836
|
#: participation/models.py:874
|
||||||
msgid "defender writing note"
|
msgid "defender writing note"
|
||||||
msgstr "note d'écrit de la défense"
|
msgstr "note d'écrit de la défense"
|
||||||
|
|
||||||
#: participation/models.py:842
|
#: participation/models.py:880
|
||||||
msgid "defender oral note"
|
msgid "defender oral note"
|
||||||
msgstr "note d'oral de la défense"
|
msgstr "note d'oral de la défense"
|
||||||
|
|
||||||
#: participation/models.py:848
|
#: participation/models.py:886
|
||||||
msgid "opponent writing note"
|
msgid "opponent writing note"
|
||||||
msgstr "note d'écrit de l'opposition"
|
msgstr "note d'écrit de l'opposition"
|
||||||
|
|
||||||
#: participation/models.py:854
|
#: participation/models.py:892
|
||||||
msgid "opponent oral note"
|
msgid "opponent oral note"
|
||||||
msgstr "note d'oral de l'opposition"
|
msgstr "note d'oral de l'opposition"
|
||||||
|
|
||||||
#: participation/models.py:860
|
#: participation/models.py:898
|
||||||
msgid "reporter writing note"
|
msgid "reporter writing note"
|
||||||
msgstr "note d'écrit du rapportage"
|
msgstr "note d'écrit du rapportage"
|
||||||
|
|
||||||
#: participation/models.py:866
|
#: participation/models.py:904
|
||||||
msgid "reporter oral note"
|
msgid "reporter oral note"
|
||||||
msgstr "note d'oral du rapportage"
|
msgstr "note d'oral du rapportage"
|
||||||
|
|
||||||
#: participation/models.py:872
|
#: participation/models.py:910
|
||||||
msgid "observer note"
|
msgid "observer note"
|
||||||
msgstr "note de l'observation"
|
msgstr "note de l'observation"
|
||||||
|
|
||||||
#: participation/models.py:901
|
#: participation/models.py:939
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Notes of {jury} for {passage}"
|
msgid "Notes of {jury} for {passage}"
|
||||||
msgstr "Notes de {jury} pour le {passage}"
|
msgstr "Notes de {jury} pour le {passage}"
|
||||||
|
|
||||||
#: participation/models.py:908
|
#: participation/models.py:946
|
||||||
msgid "note"
|
msgid "note"
|
||||||
msgstr "note"
|
msgstr "note"
|
||||||
|
|
||||||
#: participation/models.py:909
|
#: participation/models.py:947
|
||||||
msgid "notes"
|
msgid "notes"
|
||||||
msgstr "notes"
|
msgstr "notes"
|
||||||
|
|
||||||
@ -1756,7 +1792,7 @@ msgstr "rôle"
|
|||||||
msgid "participant"
|
msgid "participant"
|
||||||
msgstr "participant⋅e"
|
msgstr "participant⋅e"
|
||||||
|
|
||||||
#: registration/forms.py:25 registration/models.py:392
|
#: registration/forms.py:25 registration/models.py:415
|
||||||
msgid "coach"
|
msgid "coach"
|
||||||
msgstr "encadrant⋅e"
|
msgstr "encadrant⋅e"
|
||||||
|
|
||||||
@ -1764,7 +1800,7 @@ msgstr "encadrant⋅e"
|
|||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "En attente"
|
msgstr "En attente"
|
||||||
|
|
||||||
#: registration/forms.py:244
|
#: registration/forms.py:245
|
||||||
msgid "You must upload your scholarship attestation."
|
msgid "You must upload your scholarship attestation."
|
||||||
msgstr "Vous devez envoyer votre attestation de bourse."
|
msgstr "Vous devez envoyer votre attestation de bourse."
|
||||||
|
|
||||||
@ -1792,7 +1828,7 @@ msgstr ""
|
|||||||
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a "
|
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a "
|
||||||
"href=\"{send_email_url}\">ce lien</a>."
|
"href=\"{send_email_url}\">ce lien</a>."
|
||||||
|
|
||||||
#: registration/models.py:118 registration/models.py:480
|
#: registration/models.py:118 registration/models.py:503
|
||||||
msgid "registration"
|
msgid "registration"
|
||||||
msgstr "inscription"
|
msgstr "inscription"
|
||||||
|
|
||||||
@ -1991,19 +2027,38 @@ msgstr ""
|
|||||||
msgid "Vaccine sheet"
|
msgid "Vaccine sheet"
|
||||||
msgstr "Carnet de vaccination"
|
msgstr "Carnet de vaccination"
|
||||||
|
|
||||||
#: registration/models.py:369
|
#: registration/models.py:368
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"You have to pay {amount} € for your registration, or send a scholarship "
|
||||||
|
"notification or a payment proof. You can do it on <a href=\"{url}\">the "
|
||||||
|
"payment page</a>."
|
||||||
|
msgstr ""
|
||||||
|
"Vous devez payer {amount} € pour votre inscription, ou envoyer une "
|
||||||
|
"notification de bourse ou un justificatif de paiement. Vous pouvez le faire "
|
||||||
|
"sur <a href=\"{url}\">la page de paiement</a>."
|
||||||
|
|
||||||
|
#: registration/models.py:374 registration/models.py:383
|
||||||
|
msgid "Payment"
|
||||||
|
msgstr "Paiement"
|
||||||
|
|
||||||
|
#: registration/models.py:380
|
||||||
|
msgid "Your payment is under approval."
|
||||||
|
msgstr "Votre paiement est en cours de validation."
|
||||||
|
|
||||||
|
#: registration/models.py:392
|
||||||
msgid "student registration"
|
msgid "student registration"
|
||||||
msgstr "inscription d'élève"
|
msgstr "inscription d'élève"
|
||||||
|
|
||||||
#: registration/models.py:370
|
#: registration/models.py:393
|
||||||
msgid "student registrations"
|
msgid "student registrations"
|
||||||
msgstr "inscriptions d'élève"
|
msgstr "inscriptions d'élève"
|
||||||
|
|
||||||
#: registration/models.py:381
|
#: registration/models.py:404
|
||||||
msgid "most recent degree in mathematics, computer science or physics"
|
msgid "most recent degree in mathematics, computer science or physics"
|
||||||
msgstr "Dernier diplôme obtenu en mathématiques, informatique ou physique"
|
msgstr "Dernier diplôme obtenu en mathématiques, informatique ou physique"
|
||||||
|
|
||||||
#: registration/models.py:382
|
#: registration/models.py:405
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your most recent degree in maths, computer science or physics, or your last "
|
"Your most recent degree in maths, computer science or physics, or your last "
|
||||||
"entrance exam (CAPES, Agrégation,…)"
|
"entrance exam (CAPES, Agrégation,…)"
|
||||||
@ -2011,23 +2066,23 @@ msgstr ""
|
|||||||
"Votre dernier diplôme en mathématiques, informatique ou physique, ou votre "
|
"Votre dernier diplôme en mathématiques, informatique ou physique, ou votre "
|
||||||
"dernier concours obtenu (CAPES, Agrégation, …)"
|
"dernier concours obtenu (CAPES, Agrégation, …)"
|
||||||
|
|
||||||
#: registration/models.py:387 registration/models.py:409
|
#: registration/models.py:410 registration/models.py:432
|
||||||
msgid "professional activity"
|
msgid "professional activity"
|
||||||
msgstr "activité professionnelle"
|
msgstr "activité professionnelle"
|
||||||
|
|
||||||
#: registration/models.py:400
|
#: registration/models.py:423
|
||||||
msgid "coach registration"
|
msgid "coach registration"
|
||||||
msgstr "inscription d'encadrant⋅e"
|
msgstr "inscription d'encadrant⋅e"
|
||||||
|
|
||||||
#: registration/models.py:401
|
#: registration/models.py:424
|
||||||
msgid "coach registrations"
|
msgid "coach registrations"
|
||||||
msgstr "inscriptions d'encadrant⋅es"
|
msgstr "inscriptions d'encadrant⋅es"
|
||||||
|
|
||||||
#: registration/models.py:413
|
#: registration/models.py:436
|
||||||
msgid "administrator"
|
msgid "administrator"
|
||||||
msgstr "administrateur⋅rice"
|
msgstr "administrateur⋅rice"
|
||||||
|
|
||||||
#: registration/models.py:414
|
#: registration/models.py:437
|
||||||
msgid ""
|
msgid ""
|
||||||
"An administrator has all rights. Please don't give this right to all juries "
|
"An administrator has all rights. Please don't give this right to all juries "
|
||||||
"and volunteers."
|
"and volunteers."
|
||||||
@ -2035,29 +2090,29 @@ msgstr ""
|
|||||||
"Un⋅e administrateur⋅rice a tous les droits. Merci de ne pas donner ce droit "
|
"Un⋅e administrateur⋅rice a tous les droits. Merci de ne pas donner ce droit "
|
||||||
"à toustes les juré⋅es et bénévoles."
|
"à toustes les juré⋅es et bénévoles."
|
||||||
|
|
||||||
#: registration/models.py:424
|
#: registration/models.py:447
|
||||||
msgid "admin"
|
msgid "admin"
|
||||||
msgstr "admin"
|
msgstr "admin"
|
||||||
|
|
||||||
#: registration/models.py:424
|
#: registration/models.py:447
|
||||||
msgid "volunteer"
|
msgid "volunteer"
|
||||||
msgstr "bénévole"
|
msgstr "bénévole"
|
||||||
|
|
||||||
#: registration/models.py:437
|
#: registration/models.py:460
|
||||||
msgid ""
|
msgid ""
|
||||||
"Registrations for tournament {tournament} are closing on {date:%Y-%m-%d %H:"
|
"Registrations for tournament {tournament} are closing on {date:%Y-%m-%d %H:"
|
||||||
"%M}. There are for now {validated_teams} validated teams (+ {pending_teams} "
|
"%M}. There are for now {validated_teams} validated teams (+ {pending_teams} "
|
||||||
"pending) on {max_teams} expected."
|
"pending) on {max_teams} expected."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les inscriptions pour le tournoi {tournament} ferment le {date:%d/%m/%Y à %H:"
|
"Les inscriptions pour le tournoi {tournament} ferment le {date:%d/%m/%Y à %H:"
|
||||||
"%M}. Il y a pour l'instant {validated_teams} équipes validées (+ {pending_"
|
"%M}. Il y a pour l'instant {validated_teams} équipes validées (+ "
|
||||||
"teams} en attente) sur {max_teams} attendues."
|
"{pending_teams} en attente) sur {max_teams} attendues."
|
||||||
|
|
||||||
#: registration/models.py:445
|
#: registration/models.py:468
|
||||||
msgid "Registrations"
|
msgid "Registrations"
|
||||||
msgstr "Inscriptions"
|
msgstr "Inscriptions"
|
||||||
|
|
||||||
#: registration/models.py:452
|
#: registration/models.py:475
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"The team {trigram} requested to be validated for the tournament of "
|
"The team {trigram} requested to be validated for the tournament of "
|
||||||
@ -2068,68 +2123,68 @@ msgstr ""
|
|||||||
"Vous pouvez vérifier le statut de l'équipe sur la <a href=\"{url}\">page de "
|
"Vous pouvez vérifier le statut de l'équipe sur la <a href=\"{url}\">page de "
|
||||||
"l'équipe</a>."
|
"l'équipe</a>."
|
||||||
|
|
||||||
#: registration/models.py:467
|
#: registration/models.py:490
|
||||||
msgid "volunteer registration"
|
msgid "volunteer registration"
|
||||||
msgstr "inscription de bénévole"
|
msgstr "inscription de bénévole"
|
||||||
|
|
||||||
#: registration/models.py:468
|
#: registration/models.py:491
|
||||||
msgid "volunteer registrations"
|
msgid "volunteer registrations"
|
||||||
msgstr "inscriptions de bénévoles"
|
msgstr "inscriptions de bénévoles"
|
||||||
|
|
||||||
#: registration/models.py:484
|
#: registration/models.py:507
|
||||||
msgid "type"
|
msgid "type"
|
||||||
msgstr "type"
|
msgstr "type"
|
||||||
|
|
||||||
#: registration/models.py:487
|
#: registration/models.py:510
|
||||||
msgid "No payment"
|
msgid "No payment"
|
||||||
msgstr "Pas de paiement"
|
msgstr "Pas de paiement"
|
||||||
|
|
||||||
#: registration/models.py:489
|
#: registration/models.py:512
|
||||||
msgid "Scholarship"
|
msgid "Scholarship"
|
||||||
msgstr "Notification de bourse"
|
msgstr "Notification de bourse"
|
||||||
|
|
||||||
#: registration/models.py:490
|
#: registration/models.py:513
|
||||||
msgid "Bank transfer"
|
msgid "Bank transfer"
|
||||||
msgstr "Virement bancaire"
|
msgstr "Virement bancaire"
|
||||||
|
|
||||||
#: registration/models.py:491
|
#: registration/models.py:514
|
||||||
msgid "Other (please indicate)"
|
msgid "Other (please indicate)"
|
||||||
msgstr "Autre (veuillez spécifier)"
|
msgstr "Autre (veuillez spécifier)"
|
||||||
|
|
||||||
#: registration/models.py:492
|
#: registration/models.py:515
|
||||||
msgid "The tournament is free"
|
msgid "The tournament is free"
|
||||||
msgstr "Le tournoi est gratuit"
|
msgstr "Le tournoi est gratuit"
|
||||||
|
|
||||||
#: registration/models.py:499
|
#: registration/models.py:522
|
||||||
msgid "scholarship file"
|
msgid "scholarship file"
|
||||||
msgstr "Notification de bourse"
|
msgstr "Notification de bourse"
|
||||||
|
|
||||||
#: registration/models.py:500
|
#: registration/models.py:523
|
||||||
msgid "only if you have a scholarship."
|
msgid "only if you have a scholarship."
|
||||||
msgstr "Nécessaire seulement si vous déclarez être boursier."
|
msgstr "Nécessaire seulement si vous déclarez être boursier."
|
||||||
|
|
||||||
#: registration/models.py:507
|
#: registration/models.py:530
|
||||||
msgid "additional information"
|
msgid "additional information"
|
||||||
msgstr "informations additionnelles"
|
msgstr "informations additionnelles"
|
||||||
|
|
||||||
#: registration/models.py:508
|
#: registration/models.py:531
|
||||||
msgid "To help us to find your payment."
|
msgid "To help us to find your payment."
|
||||||
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
|
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
|
||||||
|
|
||||||
#: registration/models.py:514
|
#: registration/models.py:537
|
||||||
msgid "payment valid"
|
msgid "payment valid"
|
||||||
msgstr "paiement valide"
|
msgstr "paiement valide"
|
||||||
|
|
||||||
#: registration/models.py:523
|
#: registration/models.py:546
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Payment of {registration}"
|
msgid "Payment of {registration}"
|
||||||
msgstr "Paiement de {registration}"
|
msgstr "Paiement de {registration}"
|
||||||
|
|
||||||
#: registration/models.py:526
|
#: registration/models.py:549
|
||||||
msgid "payment"
|
msgid "payment"
|
||||||
msgstr "paiement"
|
msgstr "paiement"
|
||||||
|
|
||||||
#: registration/models.py:527
|
#: registration/models.py:550
|
||||||
msgid "payments"
|
msgid "payments"
|
||||||
msgstr "paiements"
|
msgstr "paiements"
|
||||||
|
|
||||||
@ -2559,27 +2614,27 @@ msgstr "Détails de l'utilisateur⋅rice {user}"
|
|||||||
msgid "Update user {user}"
|
msgid "Update user {user}"
|
||||||
msgstr "Mise à jour de l'utilisateur⋅rice {user}"
|
msgstr "Mise à jour de l'utilisateur⋅rice {user}"
|
||||||
|
|
||||||
#: registration/views.py:488
|
#: registration/views.py:494
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Photo authorization of {student}.{ext}"
|
msgid "Photo authorization of {student}.{ext}"
|
||||||
msgstr "Autorisation de droit à l'image de {student}.{ext}"
|
msgstr "Autorisation de droit à l'image de {student}.{ext}"
|
||||||
|
|
||||||
#: registration/views.py:511
|
#: registration/views.py:517
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Health sheet of {student}.{ext}"
|
msgid "Health sheet of {student}.{ext}"
|
||||||
msgstr "Fiche sanitaire de {student}.{ext}"
|
msgstr "Fiche sanitaire de {student}.{ext}"
|
||||||
|
|
||||||
#: registration/views.py:534
|
#: registration/views.py:540
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Vaccine sheet of {student}.{ext}"
|
msgid "Vaccine sheet of {student}.{ext}"
|
||||||
msgstr "Carnet de vaccination de {student}.{ext}"
|
msgstr "Carnet de vaccination de {student}.{ext}"
|
||||||
|
|
||||||
#: registration/views.py:557
|
#: registration/views.py:563
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Parental authorization of {student}.{ext}"
|
msgid "Parental authorization of {student}.{ext}"
|
||||||
msgstr "Autorisation parentale de {student}.{ext}"
|
msgstr "Autorisation parentale de {student}.{ext}"
|
||||||
|
|
||||||
#: registration/views.py:579
|
#: registration/views.py:585
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Scholarship attestation of {user}.{ext}"
|
msgid "Scholarship attestation of {user}.{ext}"
|
||||||
msgstr "Notification de bourse de {user}.{ext}"
|
msgstr "Notification de bourse de {user}.{ext}"
|
||||||
|
@ -14,7 +14,7 @@ from django.utils import timezone
|
|||||||
from django.utils.crypto import get_random_string
|
from django.utils.crypto import get_random_string
|
||||||
from django.utils.text import format_lazy
|
from django.utils.text import format_lazy
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from registration.models import VolunteerRegistration
|
from registration.models import VolunteerRegistration, Payment
|
||||||
from tfjm.lists import get_sympa_client
|
from tfjm.lists import get_sympa_client
|
||||||
|
|
||||||
|
|
||||||
@ -195,6 +195,8 @@ class Team(models.Model):
|
|||||||
'priority': 2,
|
'priority': 2,
|
||||||
'content': content,
|
'content': content,
|
||||||
})
|
})
|
||||||
|
else:
|
||||||
|
informations.extend(self.participation.important_informations())
|
||||||
|
|
||||||
return informations
|
return informations
|
||||||
|
|
||||||
@ -460,6 +462,42 @@ class Participation(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return _("Participation of the team {name} ({trigram})").format(name=self.team.name, trigram=self.team.trigram)
|
return _("Participation of the team {name} ({trigram})").format(name=self.team.name, trigram=self.team.trigram)
|
||||||
|
|
||||||
|
def important_informations(self):
|
||||||
|
informations = []
|
||||||
|
|
||||||
|
missing_payments = Payment.objects.filter(registration__in=self.team.participants.all(), valid=False)
|
||||||
|
if missing_payments.exists():
|
||||||
|
text = _("<p>The team {trigram} has {nb_missing_payments} missing payments. Each member of the team "
|
||||||
|
"must have a valid payment (or send a scholarship notification) "
|
||||||
|
"to participate to the tournament.</p>"
|
||||||
|
"<p>Participants that have not paid yet are: {participants}.</p>")
|
||||||
|
content = format_lazy(text, trigram=self.team.trigram, nb_missing_payments=missing_payments.count(),
|
||||||
|
participants=", ".join(str(p.registration) for p in missing_payments.all()))
|
||||||
|
informations.append({
|
||||||
|
'title': _("Missing payments"),
|
||||||
|
'type': "danger",
|
||||||
|
'priority': 10,
|
||||||
|
'content': content,
|
||||||
|
})
|
||||||
|
|
||||||
|
if timezone.now() <= self.tournament.solution_limit:
|
||||||
|
text = _("<p>The solutions for the tournament of {tournament} are due on the {date:%Y-%m-%d %H:%M}.</p>"
|
||||||
|
"<p>You have currently sent <strong>{nb_solutions}</strong> solutions. "
|
||||||
|
"We suggest to send at least <strong>{min_solutions}</strong> different solutions.</p>"
|
||||||
|
"<p>You can upload your solutions on <a href='{url}'>your participation page</a>.</p>")
|
||||||
|
url = reverse_lazy("participation:participation_detail", args=(self.pk,))
|
||||||
|
content = format_lazy(text, tournament=self.tournament.name, date=self.tournament.solution_limit,
|
||||||
|
nb_solutions=self.solutions.count(), min_solutions=len(settings.PROBLEMS) - 3,
|
||||||
|
url=url)
|
||||||
|
informations.append({
|
||||||
|
'title': _("Solutions due"),
|
||||||
|
'type': "info",
|
||||||
|
'priority': 1,
|
||||||
|
'content': content,
|
||||||
|
})
|
||||||
|
|
||||||
|
return informations
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _("participation")
|
verbose_name = _("participation")
|
||||||
verbose_name_plural = _("participations")
|
verbose_name_plural = _("participations")
|
||||||
|
@ -363,6 +363,29 @@ class StudentRegistration(ParticipantRegistration):
|
|||||||
'content': content,
|
'content': content,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if self.team and self.team.participation.valid:
|
||||||
|
if self.payment.valid is False:
|
||||||
|
text = _("You have to pay {amount} € for your registration, or send a scholarship "
|
||||||
|
"notification or a payment proof. "
|
||||||
|
"You can do it on <a href=\"{url}\">the payment page</a>.")
|
||||||
|
url = reverse_lazy("registration:update_payment", args=(self.payment.id,))
|
||||||
|
content = format_lazy(text, amount=self.team.participation.tournament.price, url=url)
|
||||||
|
informations.append({
|
||||||
|
'title': _("Payment"),
|
||||||
|
'type': "danger",
|
||||||
|
'priority': 3,
|
||||||
|
'content': content,
|
||||||
|
})
|
||||||
|
elif self.payment.valid is None:
|
||||||
|
text = _("Your payment is under approval.")
|
||||||
|
content = text
|
||||||
|
informations.append({
|
||||||
|
'title': _("Payment"),
|
||||||
|
'type': "warning",
|
||||||
|
'priority': 3,
|
||||||
|
'content': content,
|
||||||
|
})
|
||||||
|
|
||||||
return informations
|
return informations
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
Loading…
Reference in New Issue
Block a user