Fix tests

This commit is contained in:
Yohann D'ANELLO 2021-01-18 22:28:43 +01:00
parent d05a8339fe
commit ef4d74545a
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
7 changed files with 164 additions and 128 deletions

View File

@ -1,5 +1,7 @@
# Generated by Django 3.0.11 on 2020-12-30 12:02 # Generated by Django 3.0.11 on 2020-12-30 12:02
from datetime import date
import django.core.validators import django.core.validators
from django.db import migrations, models from django.db import migrations, models
import django.utils.timezone import django.utils.timezone
@ -78,8 +80,8 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True, verbose_name='name')), ('name', models.CharField(max_length=255, unique=True, verbose_name='name')),
('date_start', models.DateField(default=django.utils.timezone.now, verbose_name='start')), ('date_start', models.DateField(default=date.today, verbose_name='start')),
('date_end', models.DateField(default=django.utils.timezone.now, verbose_name='end')), ('date_end', models.DateField(default=date.today, verbose_name='end')),
('inscription_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date for registrations')), ('inscription_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date for registrations')),
('solution_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date to upload solutions')), ('solution_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date to upload solutions')),
('syntheses_first_phase_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date to upload the syntheses for the first phase')), ('syntheses_first_phase_limit', models.DateTimeField(default=django.utils.timezone.now, verbose_name='limit date to upload the syntheses for the first phase')),

View File

@ -1,6 +1,7 @@
# Copyright (C) 2020 by Animath # Copyright (C) 2020 by Animath
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from datetime import date
import os import os
from address.models import AddressField from address.models import AddressField
@ -123,12 +124,12 @@ class Tournament(models.Model):
date_start = models.DateField( date_start = models.DateField(
verbose_name=_("start"), verbose_name=_("start"),
default=timezone.now, default=date.today,
) )
date_end = models.DateField( date_end = models.DateField(
verbose_name=_("end"), verbose_name=_("end"),
default=timezone.now, default=date.today,
) )
place = AddressField( place = AddressField(

View File

@ -9,7 +9,7 @@ from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from registration.models import CoachRegistration, StudentRegistration from registration.models import CoachRegistration, StudentRegistration
from .models import Participation, Team from .models import Participation, Team, Tournament
class TestStudentParticipation(TestCase): class TestStudentParticipation(TestCase):
@ -67,6 +67,11 @@ class TestStudentParticipation(TestCase):
) )
CoachRegistration.objects.create(user=self.coach) CoachRegistration.objects.create(user=self.coach)
self.tournament = Tournament.objects.create(
name="France",
place="Here",
)
def test_admin_pages(self): def test_admin_pages(self):
""" """
Load Django-admin pages. Load Django-admin pages.
@ -347,6 +352,7 @@ class TestStudentParticipation(TestCase):
)) ))
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
self.team.participation.tournament = self.tournament
self.team.participation.valid = False self.team.participation.valid = False
self.team.participation.save() self.team.participation.save()

View File

@ -340,6 +340,9 @@ class Payment(models.Model):
def get_absolute_url(self): def get_absolute_url(self):
return reverse_lazy("registration:user_detail", args=(self.registration.user.id,)) return reverse_lazy("registration:user_detail", args=(self.registration.user.id,))
def __str__(self):
return _("Payment of {registration}").format(registration=self.registration)
class Meta: class Meta:
verbose_name = _("payment") verbose_name = _("payment")
verbose_name_plural = _("payments") verbose_name_plural = _("payments")

View File

@ -3,7 +3,6 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User
from tfjm.lists import get_sympa_client from tfjm.lists import get_sympa_client
from tfjm.matrix import Matrix
from .models import AdminRegistration, Payment, Registration from .models import AdminRegistration, Payment, Registration

View File

@ -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: 2021-01-18 17:59+0100\n" "POT-Creation-Date: 2021-01-18 22:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n" "Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -99,12 +99,12 @@ msgstr "changelogs"
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}" msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}" msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
#: apps/participation/admin.py:19 apps/participation/models.py:297 #: apps/participation/admin.py:19 apps/participation/models.py:298
#: apps/participation/tables.py:44 apps/registration/models.py:336 #: apps/participation/tables.py:44 apps/registration/models.py:335
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
#: apps/participation/forms.py:22 apps/participation/models.py:36 #: apps/participation/forms.py:22 apps/participation/models.py:37
msgid "The trigram must be composed of three uppercase letters." msgid "The trigram must be composed of three uppercase letters."
msgstr "Le trigramme doit être composé de trois lettres majuscules." msgstr "Le trigramme doit être composé de trois lettres majuscules."
@ -128,279 +128,279 @@ msgstr "Le défenseur, l'opposant et le rapporteur doivent être différents."
msgid "This defender did not work on this problem." msgid "This defender did not work on this problem."
msgstr "Ce défenseur ne travaille pas sur ce problème." msgstr "Ce défenseur ne travaille pas sur ce problème."
#: apps/participation/models.py:29 apps/participation/models.py:120 #: apps/participation/models.py:30 apps/participation/models.py:121
#: apps/participation/tables.py:17 apps/participation/tables.py:34 #: apps/participation/tables.py:17 apps/participation/tables.py:34
msgid "name" msgid "name"
msgstr "nom" msgstr "nom"
#: apps/participation/models.py:35 apps/participation/tables.py:39 #: apps/participation/models.py:36 apps/participation/tables.py:39
msgid "trigram" msgid "trigram"
msgstr "trigramme" msgstr "trigramme"
#: apps/participation/models.py:43 #: apps/participation/models.py:44
msgid "access code" msgid "access code"
msgstr "code d'accès" msgstr "code d'accès"
#: apps/participation/models.py:44 #: apps/participation/models.py:45
msgid "The access code let other people to join the team." 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." msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
#: apps/participation/models.py:107 #: apps/participation/models.py:108
#, python-brace-format #, python-brace-format
msgid "Team {name} ({trigram})" msgid "Team {name} ({trigram})"
msgstr "Équipe {name} ({trigram})" msgstr "Équipe {name} ({trigram})"
#: apps/participation/models.py:110 apps/participation/models.py:282 #: apps/participation/models.py:111 apps/participation/models.py:283
#: apps/registration/models.py:123 #: apps/registration/models.py:123
msgid "team" msgid "team"
msgstr "équipe" msgstr "équipe"
#: apps/participation/models.py:111 apps/participation/tables.py:84 #: apps/participation/models.py:112 apps/participation/tables.py:84
msgid "teams" msgid "teams"
msgstr "équipes" msgstr "équipes"
#: apps/participation/models.py:125 #: apps/participation/models.py:126
msgid "start" msgid "start"
msgstr "début" msgstr "début"
#: apps/participation/models.py:130 #: apps/participation/models.py:131
msgid "end" msgid "end"
msgstr "fin" msgstr "fin"
#: apps/participation/models.py:135 apps/participation/models.py:376 #: apps/participation/models.py:136 apps/participation/models.py:377
#: apps/participation/templates/participation/tournament_detail.html:18 #: apps/participation/templates/participation/tournament_detail.html:18
msgid "place" msgid "place"
msgstr "lieu" msgstr "lieu"
#: apps/participation/models.py:139 #: apps/participation/models.py:140
msgid "max team count" msgid "max team count"
msgstr "nombre maximal d'équipes" msgstr "nombre maximal d'équipes"
#: apps/participation/models.py:144 #: apps/participation/models.py:145
#: apps/participation/templates/participation/tournament_detail.html:21 #: apps/participation/templates/participation/tournament_detail.html:21
msgid "price" msgid "price"
msgstr "prix" msgstr "prix"
#: apps/participation/models.py:149 #: apps/participation/models.py:150
msgid "limit date for registrations" msgid "limit date for registrations"
msgstr "date limite d'inscription" msgstr "date limite d'inscription"
#: apps/participation/models.py:154 #: apps/participation/models.py:155
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"
#: apps/participation/models.py:159 #: apps/participation/models.py:160
msgid "random draw for solutions" msgid "random draw for solutions"
msgstr "tirage au sort des solutions" msgstr "tirage au sort des solutions"
#: apps/participation/models.py:164 #: apps/participation/models.py:165
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"
#: apps/participation/models.py:169 #: apps/participation/models.py:170
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"
#: apps/participation/models.py:174 #: apps/participation/models.py:175
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"
#: apps/participation/models.py:179 #: apps/participation/models.py:180
#: apps/participation/templates/participation/tournament_detail.html:45 #: apps/participation/templates/participation/tournament_detail.html:45
msgid "description" msgid "description"
msgstr "description" msgstr "description"
#: apps/participation/models.py:185 #: apps/participation/models.py:186
#: apps/participation/templates/participation/tournament_detail.html:12 #: apps/participation/templates/participation/tournament_detail.html:12
msgid "organizers" msgid "organizers"
msgstr "organisateurs" msgstr "organisateurs"
#: apps/participation/models.py:190 #: apps/participation/models.py:191
msgid "final" msgid "final"
msgstr "finale" msgstr "finale"
#: apps/participation/models.py:267 apps/participation/models.py:291 #: apps/participation/models.py:268 apps/participation/models.py:292
#: apps/participation/models.py:323 #: apps/participation/models.py:324
msgid "tournament" msgid "tournament"
msgstr "tournoi" msgstr "tournoi"
#: apps/participation/models.py:268 #: apps/participation/models.py:269
msgid "tournaments" msgid "tournaments"
msgstr "tournois" msgstr "tournois"
#: apps/participation/models.py:298 #: apps/participation/models.py:299
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 organisateurs." msgstr "La participation a été validée par les organisateurs."
#: apps/participation/models.py:303 #: apps/participation/models.py:304
msgid "selected for final" msgid "selected for final"
msgstr "sélectionnée pour la finale" msgstr "sélectionnée pour la finale"
#: apps/participation/models.py:304 #: apps/participation/models.py:305
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."
#: apps/participation/models.py:311 #: apps/participation/models.py:312
#, 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})"
#: apps/participation/models.py:314 apps/participation/models.py:498 #: apps/participation/models.py:315 apps/participation/models.py:499
#: apps/participation/models.py:536 #: apps/participation/models.py:537
msgid "participation" msgid "participation"
msgstr "participation" msgstr "participation"
#: apps/participation/models.py:315 apps/participation/models.py:337 #: apps/participation/models.py:316 apps/participation/models.py:338
msgid "participations" msgid "participations"
msgstr "participations" msgstr "participations"
#: apps/participation/models.py:327 #: apps/participation/models.py:328
msgid "round" msgid "round"
msgstr "tour" msgstr "tour"
#: apps/participation/models.py:329 apps/participation/models.py:330 #: apps/participation/models.py:330 apps/participation/models.py:331
#, python-brace-format #, python-brace-format
msgid "Round {round}" msgid "Round {round}"
msgstr "Tour {round}" msgstr "Tour {round}"
#: apps/participation/models.py:343 #: apps/participation/models.py:344
msgid "juries" msgid "juries"
msgstr "jurys" msgstr "jurys"
#: apps/participation/models.py:357 #: apps/participation/models.py:358
#, python-brace-format #, python-brace-format
msgid "Pool {round} for tournament {tournament} with teams {teams}" msgid "Pool {round} for tournament {tournament} with teams {teams}"
msgstr "Poule {round} du tournoi {tournament} avec les équipes {teams}" msgstr "Poule {round} du tournoi {tournament} avec les équipes {teams}"
#: apps/participation/models.py:363 apps/participation/models.py:371 #: apps/participation/models.py:364 apps/participation/models.py:372
msgid "pool" msgid "pool"
msgstr "poule" msgstr "poule"
#: apps/participation/models.py:364 #: apps/participation/models.py:365
msgid "pools" msgid "pools"
msgstr "poules" msgstr "poules"
#: apps/participation/models.py:378 #: apps/participation/models.py:379
msgid "Where the solution is presented?" msgid "Where the solution is presented?"
msgstr "Où est-ce que les solutions sont défendues ?" msgstr "Où est-ce que les solutions sont défendues ?"
#: apps/participation/models.py:383 #: apps/participation/models.py:384
msgid "defended solution" msgid "defended solution"
msgstr "solution défendue" msgstr "solution défendue"
#: apps/participation/models.py:385 apps/participation/models.py:505 #: apps/participation/models.py:386 apps/participation/models.py:506
#, python-brace-format #, python-brace-format
msgid "Problem #{problem}" msgid "Problem #{problem}"
msgstr "Problème n°{problem}" msgstr "Problème n°{problem}"
#: apps/participation/models.py:392 apps/participation/tables.py:105 #: apps/participation/models.py:393 apps/participation/tables.py:105
msgid "defender" msgid "defender"
msgstr "défenseur" msgstr "défenseur"
#: apps/participation/models.py:399 apps/participation/models.py:548 #: apps/participation/models.py:400 apps/participation/models.py:549
msgid "opponent" msgid "opponent"
msgstr "opposant" msgstr "opposant"
#: apps/participation/models.py:406 apps/participation/models.py:549 #: apps/participation/models.py:407 apps/participation/models.py:550
msgid "reporter" msgid "reporter"
msgstr "rapporteur" msgstr "rapporteur"
#: apps/participation/models.py:466 apps/participation/models.py:469 #: apps/participation/models.py:467 apps/participation/models.py:470
#: apps/participation/models.py:472 #: apps/participation/models.py:473
#, 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."
#: apps/participation/models.py:477 #: apps/participation/models.py:478
#, 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}"
#: apps/participation/models.py:481 apps/participation/models.py:543 #: apps/participation/models.py:482 apps/participation/models.py:544
#: apps/participation/models.py:581 #: apps/participation/models.py:582
msgid "passage" msgid "passage"
msgstr "passage" msgstr "passage"
#: apps/participation/models.py:482 #: apps/participation/models.py:483
msgid "passages" msgid "passages"
msgstr "passages" msgstr "passages"
#: apps/participation/models.py:503 #: apps/participation/models.py:504
msgid "problem" msgid "problem"
msgstr "numéro de problème" msgstr "numéro de problème"
#: apps/participation/models.py:510 #: apps/participation/models.py:511
msgid "solution for the final tournament" msgid "solution for the final tournament"
msgstr "solution pour la finale" msgstr "solution pour la finale"
#: apps/participation/models.py:515 apps/participation/models.py:554 #: apps/participation/models.py:516 apps/participation/models.py:555
msgid "file" msgid "file"
msgstr "fichier" msgstr "fichier"
#: apps/participation/models.py:523 #: apps/participation/models.py:524
#, 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}"
#: apps/participation/models.py:527 #: apps/participation/models.py:528
msgid "solution" msgid "solution"
msgstr "solution" msgstr "solution"
#: apps/participation/models.py:528 #: apps/participation/models.py:529
msgid "solutions" msgid "solutions"
msgstr "solutions" msgstr "solutions"
#: apps/participation/models.py:562 #: apps/participation/models.py:563
#, python-brace-format #, python-brace-format
msgid "Synthesis for the {type} of the {passage}" msgid "Synthesis for the {type} of the {passage}"
msgstr "Synthèse pour {type} du {passage}" msgstr "Synthèse pour {type} du {passage}"
#: apps/participation/models.py:565 #: apps/participation/models.py:566
msgid "synthesis" msgid "synthesis"
msgstr "note de synthèse" msgstr "note de synthèse"
#: apps/participation/models.py:566 #: apps/participation/models.py:567
msgid "syntheses" msgid "syntheses"
msgstr "notes de synthèse" msgstr "notes de synthèse"
#: apps/participation/models.py:574 #: apps/participation/models.py:575
msgid "jury" msgid "jury"
msgstr "jury" msgstr "jury"
#: apps/participation/models.py:586 #: apps/participation/models.py:587
msgid "defender writing note" msgid "defender writing note"
msgstr "note d'écrit du défenseur" msgstr "note d'écrit du défenseur"
#: apps/participation/models.py:592 #: apps/participation/models.py:593
msgid "defender oral note" msgid "defender oral note"
msgstr "note d'oral du défenseur" msgstr "note d'oral du défenseur"
#: apps/participation/models.py:598 #: apps/participation/models.py:599
msgid "opponent writing note" msgid "opponent writing note"
msgstr "note d'écrit de l'opposant" msgstr "note d'écrit de l'opposant"
#: apps/participation/models.py:604 #: apps/participation/models.py:605
msgid "opponent oral note" msgid "opponent oral note"
msgstr "note d'oral de l'opposant" msgstr "note d'oral de l'opposant"
#: apps/participation/models.py:610 #: apps/participation/models.py:611
msgid "reporter writing note" msgid "reporter writing note"
msgstr "not d'écrit du rapporteur" msgstr "not d'écrit du rapporteur"
#: apps/participation/models.py:616 #: apps/participation/models.py:617
msgid "reporter oral note" msgid "reporter oral note"
msgstr "note d'oral du rapporteur" msgstr "note d'oral du rapporteur"
#: apps/participation/models.py:625 #: apps/participation/models.py:626
#, 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}"
#: apps/participation/models.py:632 #: apps/participation/models.py:633
msgid "note" msgid "note"
msgstr "note" msgstr "note"
#: apps/participation/models.py:633 #: apps/participation/models.py:634
msgid "notes" msgid "notes"
msgstr "notes" msgstr "notes"
@ -485,9 +485,11 @@ msgstr "Rejoindre"
#: apps/participation/templates/participation/team_detail.html:148 #: apps/participation/templates/participation/team_detail.html:148
#: apps/participation/templates/participation/tournament_form.html:12 #: apps/participation/templates/participation/tournament_form.html:12
#: apps/participation/templates/participation/update_team.html:12 #: apps/participation/templates/participation/update_team.html:12
#: apps/registration/templates/registration/payment_form.html:11
#: apps/registration/templates/registration/update_user.html:16 #: apps/registration/templates/registration/update_user.html:16
#: apps/registration/templates/registration/user_detail.html:127 #: apps/registration/templates/registration/user_detail.html:140
#: apps/registration/templates/registration/user_detail.html:136 #: apps/registration/templates/registration/user_detail.html:149
#: apps/registration/templates/registration/user_detail.html:177
msgid "Update" msgid "Update"
msgstr "Modifier" msgstr "Modifier"
@ -541,9 +543,10 @@ msgstr "Envoyer une solution"
#: apps/registration/templates/registration/upload_health_sheet.html:17 #: apps/registration/templates/registration/upload_health_sheet.html:17
#: apps/registration/templates/registration/upload_parental_authorization.html:17 #: apps/registration/templates/registration/upload_parental_authorization.html:17
#: apps/registration/templates/registration/upload_photo_authorization.html:18 #: apps/registration/templates/registration/upload_photo_authorization.html:18
#: apps/registration/templates/registration/user_detail.html:141 #: apps/registration/templates/registration/user_detail.html:155
#: apps/registration/templates/registration/user_detail.html:146 #: apps/registration/templates/registration/user_detail.html:160
#: apps/registration/templates/registration/user_detail.html:151 #: apps/registration/templates/registration/user_detail.html:165
#: apps/registration/templates/registration/user_detail.html:170
msgid "Upload" msgid "Upload"
msgstr "Téléverser" msgstr "Téléverser"
@ -781,7 +784,7 @@ msgid "Update team"
msgstr "Modifier l'équipe" msgstr "Modifier l'équipe"
#: apps/participation/templates/participation/team_detail.html:152 #: apps/participation/templates/participation/team_detail.html:152
#: apps/participation/views.py:351 #: apps/participation/views.py:359
msgid "Leave team" msgid "Leave team"
msgstr "Quitter l'équipe" msgstr "Quitter l'équipe"
@ -887,12 +890,12 @@ msgstr "Vous êtes déjà dans une équipe."
msgid "Join team" msgid "Join team"
msgstr "Rejoindre une équipe" msgstr "Rejoindre une équipe"
#: apps/participation/views.py:146 apps/participation/views.py:357 #: apps/participation/views.py:146 apps/participation/views.py:365
#: apps/participation/views.py:390 #: apps/participation/views.py:398
msgid "You are not in a team." msgid "You are not in a team."
msgstr "Vous n'êtes pas dans une équipe." msgstr "Vous n'êtes pas dans une équipe."
#: apps/participation/views.py:147 apps/participation/views.py:391 #: apps/participation/views.py:147 apps/participation/views.py:399
msgid "You don't participate, so you don't have any team." msgid "You don't participate, so you don't have any team."
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe." msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
@ -928,44 +931,44 @@ msgstr "Vous n'êtes pas administrateur."
msgid "This team has no pending validation." msgid "This team has no pending validation."
msgstr "L'équipe n'a pas de validation en attente." msgstr "L'équipe n'a pas de validation en attente."
#: apps/participation/views.py:254 #: apps/participation/views.py:262
msgid "You must specify if you validate the registration or not." msgid "You must specify if you validate the registration or not."
msgstr "Vous devez spécifier si vous validez l'inscription ou non." msgstr "Vous devez spécifier si vous validez l'inscription ou non."
#: apps/participation/views.py:285 #: apps/participation/views.py:293
#, python-brace-format #, python-brace-format
msgid "Update team {trigram}" msgid "Update team {trigram}"
msgstr "Mise à jour de l'équipe {trigram}" msgstr "Mise à jour de l'équipe {trigram}"
#: apps/participation/views.py:324 #: apps/participation/views.py:332
#, python-brace-format #, python-brace-format
msgid "Photo authorization of {participant}.{ext}" msgid "Photo authorization of {participant}.{ext}"
msgstr "Autorisation de droit à l'image de {participant}.{ext}" msgstr "Autorisation de droit à l'image de {participant}.{ext}"
#: apps/participation/views.py:330 #: apps/participation/views.py:338
#, python-brace-format #, python-brace-format
msgid "Parental authorization of {participant}.{ext}" msgid "Parental authorization of {participant}.{ext}"
msgstr "Autorisation parentale de {participant}.{ext}" msgstr "Autorisation parentale de {participant}.{ext}"
#: apps/participation/views.py:337 #: apps/participation/views.py:345
#, python-brace-format #, python-brace-format
msgid "Health sheet of {participant}.{ext}" msgid "Health sheet of {participant}.{ext}"
msgstr "Fiche sanitaire de {participant}.{ext}" msgstr "Fiche sanitaire de {participant}.{ext}"
#: apps/participation/views.py:341 #: apps/participation/views.py:349
#, python-brace-format #, python-brace-format
msgid "Photo authorizations of team {trigram}.zip" msgid "Photo authorizations of team {trigram}.zip"
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip" msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
#: apps/participation/views.py:359 #: apps/participation/views.py:367
msgid "The team is already validated or the validation is pending." msgid "The team is already validated or the validation is pending."
msgstr "La validation de l'équipe est déjà faite ou en cours." msgstr "La validation de l'équipe est déjà faite ou en cours."
#: apps/participation/views.py:405 #: apps/participation/views.py:413
msgid "The team is not validated yet." msgid "The team is not validated yet."
msgstr "L'équipe n'est pas encore validée." msgstr "L'équipe n'est pas encore validée."
#: apps/participation/views.py:417 #: apps/participation/views.py:425
#, python-brace-format #, python-brace-format
msgid "Participation of team {trigram}" msgid "Participation of team {trigram}"
msgstr "Participation de l'équipe {trigram}" msgstr "Participation de l'équipe {trigram}"
@ -995,15 +998,23 @@ msgid "admin"
msgstr "admin" msgstr "admin"
#: apps/registration/forms.py:116 apps/registration/forms.py:138 #: apps/registration/forms.py:116 apps/registration/forms.py:138
#: apps/registration/forms.py:160 #: apps/registration/forms.py:160 apps/registration/forms.py:214
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."
#: apps/registration/forms.py:118 apps/registration/forms.py:140 #: apps/registration/forms.py:118 apps/registration/forms.py:140
#: apps/registration/forms.py:162 #: apps/registration/forms.py:162 apps/registration/forms.py:216
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."
#: apps/registration/forms.py:208
msgid "Pending"
msgstr "En attente"
#: apps/registration/forms.py:224
msgid "You must upload your scholarship attestation."
msgstr "Vous devez envoyer votre attestation de bourse."
#: apps/registration/models.py:35 #: apps/registration/models.py:35
msgid "Grant Animath to contact me in the future about other actions" msgid "Grant Animath to contact me in the future about other actions"
msgstr "" msgstr ""
@ -1145,19 +1156,24 @@ msgstr "Notification de bourse"
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."
#: apps/registration/models.py:329 #: apps/registration/models.py:328
msgid "additional information" msgid "additional information"
msgstr "informations additionnelles" msgstr "informations additionnelles"
#: apps/registration/models.py:330 #: apps/registration/models.py:329
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."
#: apps/registration/models.py:342 #: apps/registration/models.py:344
#, python-brace-format
msgid "Payment of {registration}"
msgstr "Paiement de {registration}"
#: apps/registration/models.py:347
msgid "payment" msgid "payment"
msgstr "paiement" msgstr "paiement"
#: apps/registration/models.py:343 #: apps/registration/models.py:348
msgid "payments" msgid "payments"
msgstr "paiements" msgstr "paiements"
@ -1169,7 +1185,7 @@ msgstr "nom de famille"
#: apps/registration/templates/registration/add_organizer.html:12 #: apps/registration/templates/registration/add_organizer.html:12
#: apps/registration/templates/registration/add_organizer.html:19 #: apps/registration/templates/registration/add_organizer.html:19
#: apps/registration/templates/registration/user_list.html:8 #: apps/registration/templates/registration/user_list.html:8
#: apps/registration/views.py:86 #: apps/registration/views.py:85
msgid "Add organizer" msgid "Add organizer"
msgstr "Ajouter un organisateur" msgstr "Ajouter un organisateur"
@ -1324,7 +1340,7 @@ msgstr "Réinitialiser mon mot de passe"
#: apps/registration/templates/registration/signup.html:5 #: apps/registration/templates/registration/signup.html:5
#: apps/registration/templates/registration/signup.html:12 #: apps/registration/templates/registration/signup.html:12
#: apps/registration/templates/registration/signup.html:19 #: apps/registration/templates/registration/signup.html:19
#: apps/registration/views.py:42 #: apps/registration/views.py:41
msgid "Sign up" msgid "Sign up"
msgstr "Inscription" msgstr "Inscription"
@ -1456,78 +1472,87 @@ msgstr "Informations de paiement :"
msgid "yes,no,pending" msgid "yes,no,pending"
msgstr "oui,non,en attente" msgstr "oui,non,en attente"
#: apps/registration/templates/registration/user_detail.html:120 #: apps/registration/templates/registration/user_detail.html:123
#: apps/registration/templates/registration/user_detail.html:126
msgid "valid:" msgid "valid:"
msgstr "valide :" msgstr "valide :"
#: apps/registration/templates/registration/user_detail.html:129 #: apps/registration/templates/registration/user_detail.html:130
#: apps/registration/templates/registration/user_detail.html:176
#, fuzzy
#| msgid "Update team"
msgid "Update payment"
msgstr "Modifier l'équipe"
#: apps/registration/templates/registration/user_detail.html:142
msgid "Impersonate" msgid "Impersonate"
msgstr "Impersonifier" msgstr "Impersonifier"
#: apps/registration/templates/registration/user_detail.html:135 #: apps/registration/templates/registration/user_detail.html:148
msgid "Update user" msgid "Update user"
msgstr "Modifier l'utilisateur" msgstr "Modifier l'utilisateur"
#: apps/registration/templates/registration/user_detail.html:140 #: apps/registration/templates/registration/user_detail.html:154
#: apps/registration/views.py:313 #: apps/registration/views.py:312
msgid "Upload photo authorization" msgid "Upload photo authorization"
msgstr "Téléverser l'autorisation de droit à l'image" msgstr "Téléverser l'autorisation de droit à l'image"
#: apps/registration/templates/registration/user_detail.html:145 #: apps/registration/templates/registration/user_detail.html:159
#: apps/registration/views.py:339 #: apps/registration/views.py:338
msgid "Upload health sheet" msgid "Upload health sheet"
msgstr "Téléverser la fiche sanitaire" msgstr "Téléverser la fiche sanitaire"
#: apps/registration/templates/registration/user_detail.html:150 #: apps/registration/templates/registration/user_detail.html:164
#: apps/registration/views.py:365 #: apps/registration/templates/registration/user_detail.html:169
#: apps/registration/views.py:364
msgid "Upload parental authorization" msgid "Upload parental authorization"
msgstr "Téléverser l'autorisation parentale" msgstr "Téléverser l'autorisation parentale"
#: apps/registration/views.py:125 #: apps/registration/views.py:124
msgid "New TFJM² organizer account" msgid "New TFJM² organizer account"
msgstr "Nouveau compte organisateur pour le TFJM²" msgstr "Nouveau compte organisateur pour le TFJM²"
#: apps/registration/views.py:147 #: apps/registration/views.py:146
msgid "Email validation" msgid "Email validation"
msgstr "Validation de l'adresse mail" msgstr "Validation de l'adresse mail"
#: apps/registration/views.py:149 #: apps/registration/views.py:148
msgid "Validate email" msgid "Validate email"
msgstr "Valider l'adresse mail" msgstr "Valider l'adresse mail"
#: apps/registration/views.py:188 #: apps/registration/views.py:187
msgid "Email validation unsuccessful" msgid "Email validation unsuccessful"
msgstr "Échec de la validation de l'adresse mail" msgstr "Échec de la validation de l'adresse mail"
#: apps/registration/views.py:199 #: apps/registration/views.py:198
msgid "Email validation email sent" msgid "Email validation email sent"
msgstr "Mail de confirmation de l'adresse mail envoyé" msgstr "Mail de confirmation de l'adresse mail envoyé"
#: apps/registration/views.py:207 #: apps/registration/views.py:206
msgid "Resend email validation link" msgid "Resend email validation link"
msgstr "Renvoyé le lien de validation de l'adresse mail" msgstr "Renvoyé le lien de validation de l'adresse mail"
#: apps/registration/views.py:247 #: apps/registration/views.py:246
#, python-brace-format #, python-brace-format
msgid "Detail of user {user}" msgid "Detail of user {user}"
msgstr "Détails de l'utilisateur {user}" msgstr "Détails de l'utilisateur {user}"
#: apps/registration/views.py:277 #: apps/registration/views.py:276
#, python-brace-format #, python-brace-format
msgid "Update user {user}" msgid "Update user {user}"
msgstr "Mise à jour de l'utilisateur {user}" msgstr "Mise à jour de l'utilisateur {user}"
#: apps/registration/views.py:403 #: apps/registration/views.py:427
#, 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}"
#: apps/registration/views.py:426 #: apps/registration/views.py:450
#, 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}"
#: apps/registration/views.py:449 #: apps/registration/views.py:473
#, 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}"