1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-02-22 23:01:39 +00:00

Compare commits

..

No commits in common. "c500a735d84e9bb8bc418fae6e1b0713db272277" and "ab1c5a276a8b6532f2e29d27d284a849f4901bed" have entirely different histories.

9 changed files with 116 additions and 166 deletions

View File

@ -6,7 +6,7 @@
</head> </head>
<body> <body>
<p> <p>
Bonjour, Bonjour {{ user.registration }},
</p> </p>
<p> <p>

View File

@ -1,4 +1,4 @@
Bonjour {{ user }}, Bonjour {{ user.registration }},
L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer L'équipe « {{ team.name }} » ({{ team.trigram }}) vient de demander à valider son équipe pour participer
au {{ team.participation.get_problem_display }} du TFJM². au {{ team.participation.get_problem_display }} du TFJM².

View File

@ -321,12 +321,8 @@ class TestStudentParticipation(TestCase):
A team asked for validation. Try to validate it. A team asked for validation. Try to validate it.
""" """
self.team.participation.valid = False self.team.participation.valid = False
self.team.participation.tournament = self.tournament
self.team.participation.save() self.team.participation.save()
self.tournament.organizers.add(self.superuser.registration)
self.tournament.save()
# No right to do that # No right to do that
resp = self.client.post(reverse("participation:team_detail", args=(self.team.pk,)), data=dict( resp = self.client.post(reverse("participation:team_detail", args=(self.team.pk,)), data=dict(
_form_type="ValidateParticipationForm", _form_type="ValidateParticipationForm",
@ -388,9 +384,6 @@ class TestStudentParticipation(TestCase):
self.coach.registration.team = self.team self.coach.registration.team = self.team
self.coach.registration.save() self.coach.registration.save()
self.team.participation.tournament = self.tournament
self.team.participation.save()
response = self.client.get(reverse("participation:update_team", args=(self.team.pk,))) response = self.client.get(reverse("participation:update_team", args=(self.team.pk,)))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)

View File

@ -5,7 +5,6 @@ from io import BytesIO
import os import os
from zipfile import ZipFile from zipfile import ZipFile
from django.conf import settings
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
@ -21,7 +20,7 @@ from django.views.generic import CreateView, DetailView, FormView, RedirectView,
from django.views.generic.edit import FormMixin, ProcessFormView from django.views.generic.edit import FormMixin, ProcessFormView
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
from magic import Magic from magic import Magic
from registration.models import StudentRegistration from registration.models import AdminRegistration, StudentRegistration
from tfjm.lists import get_sympa_client from tfjm.lists import get_sympa_client
from tfjm.matrix import Matrix from tfjm.matrix import Matrix
from tfjm.views import AdminMixin, VolunteerMixin from tfjm.views import AdminMixin, VolunteerMixin
@ -222,21 +221,19 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
self.object.participation.valid = False self.object.participation.valid = False
self.object.participation.save() self.object.participation.save()
mail_context = dict(team=self.object, domain=Site.objects.first().domain) for admin in AdminRegistration.objects.all():
mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context) mail_context = dict(user=admin.user, team=self.object, domain=Site.objects.first().domain)
mail_html = render_to_string("participation/mails/request_validation.html", mail_context) mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context)
send_mail("[TFJM²] Validation d'équipe", mail_plain, [settings.DEFAULT_FROM_EMAIL], mail_html = render_to_string("participation/mails/request_validation.html", mail_context)
[self.object.participation.tournament.organizers_email], html_message=mail_html) admin.user.email_user("[TFJM²] Validation d'équipe", mail_plain, html_message=mail_html)
return super().form_valid(form) return super().form_valid(form)
def handle_validate_participation(self, form): def handle_validate_participation(self, form):
""" """
An admin validates the team (or not) An admin validates the team (or not)
""" """
if not self.object.participation.tournament \ if not self.request.user.registration.is_admin:
or self.request.user.registration not in self.object.participation.tournament.organizers.all(): form.add_error(None, _("You are not an administrator."))
form.add_error(None, _("You are not an organizer of the tournament."))
return self.form_invalid(form) return self.form_invalid(form)
elif self.object.participation.valid is not False: elif self.object.participation.valid is not False:
form.add_error(None, _("This team has no pending validation.")) form.add_error(None, _("This team has no pending validation."))

View File

@ -100,7 +100,7 @@ class StudentRegistrationForm(forms.ModelForm):
""" """
class Meta: class Meta:
model = StudentRegistration model = StudentRegistration
fields = ('team', 'student_class', 'birth_date', 'gender', 'address', 'phone_number', 'health_issues', fields = ('team', 'student_class', 'birth_date', 'gender', 'address', 'phone_number',
'school', 'responsible_name', 'responsible_phone', 'responsible_email', 'school', 'responsible_name', 'responsible_phone', 'responsible_email',
'give_contact_to_animath', 'email_confirmed',) 'give_contact_to_animath', 'email_confirmed',)
@ -177,7 +177,7 @@ class CoachRegistrationForm(forms.ModelForm):
""" """
class Meta: class Meta:
model = CoachRegistration model = CoachRegistration
fields = ('team', 'birth_date', 'gender', 'address', 'phone_number', 'health_issues', 'professional_activity', fields = ('team', 'birth_date', 'gender', 'address', 'phone_number', 'professional_activity',
'give_contact_to_animath', 'email_confirmed',) 'give_contact_to_animath', 'email_confirmed',)

View File

@ -1,18 +0,0 @@
# Generated by Django 3.0.11 on 2021-01-23 20:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('registration', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='participantregistration',
name='health_issues',
field=models.TextField(blank=True, help_text='You can indicate here your allergies or anything that is important to know for organizers', verbose_name='health issues'),
),
]

View File

@ -150,12 +150,6 @@ class ParticipantRegistration(Registration):
blank=True, blank=True,
) )
health_issues = models.TextField(
verbose_name=_("health issues"),
blank=True,
help_text=_("You can indicate here your allergies or anything that is important to know for organizers"),
)
photo_authorization = models.FileField( photo_authorization = models.FileField(
verbose_name=_("photo authorization"), verbose_name=_("photo authorization"),
upload_to=get_random_photo_filename, upload_to=get_random_photo_filename,

View File

@ -51,9 +51,6 @@
<dt class="col-sm-6 text-right">{% trans "Phone number:" %}</dt> <dt class="col-sm-6 text-right">{% trans "Phone number:" %}</dt>
<dd class="col-sm-6">{{ user_object.registration.phone_number }}</dd> <dd class="col-sm-6">{{ user_object.registration.phone_number }}</dd>
<dt class="col-sm-6 text-right">{% trans "Health issues:" %}</dt>
<dd class="col-sm-6">{{ user_object.registration.health_issues|default:any }}</dd>
<dt class="col-sm-6 text-right">{% trans "Photo authorization:" %}</dt> <dt class="col-sm-6 text-right">{% trans "Photo authorization:" %}</dt>
<dd class="col-sm-6"> <dd class="col-sm-6">
{% if user_object.registration.photo_authorization %} {% if user_object.registration.photo_authorization %}

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-23 21:55+0100\n" "POT-Creation-Date: 2021-01-23 19:56+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"
@ -100,7 +100,7 @@ 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:314 #: apps/participation/admin.py:19 apps/participation/models.py:314
#: apps/participation/tables.py:44 apps/registration/models.py:358 #: apps/participation/tables.py:44 apps/registration/models.py:352
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
@ -528,9 +528,9 @@ msgstr "Rejoindre"
#: apps/participation/templates/participation/update_team.html:12 #: apps/participation/templates/participation/update_team.html:12
#: apps/registration/templates/registration/payment_form.html:49 #: apps/registration/templates/registration/payment_form.html:49
#: apps/registration/templates/registration/update_user.html:16 #: apps/registration/templates/registration/update_user.html:16
#: apps/registration/templates/registration/user_detail.html:153 #: apps/registration/templates/registration/user_detail.html:150
#: apps/registration/templates/registration/user_detail.html:162 #: apps/registration/templates/registration/user_detail.html:159
#: apps/registration/templates/registration/user_detail.html:190 #: apps/registration/templates/registration/user_detail.html:187
msgid "Update" msgid "Update"
msgstr "Modifier" msgstr "Modifier"
@ -586,10 +586,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:168 #: apps/registration/templates/registration/user_detail.html:165
#: apps/registration/templates/registration/user_detail.html:173 #: apps/registration/templates/registration/user_detail.html:170
#: apps/registration/templates/registration/user_detail.html:178 #: apps/registration/templates/registration/user_detail.html:175
#: apps/registration/templates/registration/user_detail.html:183 #: apps/registration/templates/registration/user_detail.html:180
msgid "Upload" msgid "Upload"
msgstr "Téléverser" msgstr "Téléverser"
@ -780,16 +780,16 @@ msgstr "Lettre de motivation :"
#: apps/participation/templates/participation/team_detail.html:94 #: apps/participation/templates/participation/team_detail.html:94
#: apps/registration/templates/registration/upload_health_sheet.html:12 #: apps/registration/templates/registration/upload_health_sheet.html:12
#: apps/registration/templates/registration/upload_parental_authorization.html:12 #: apps/registration/templates/registration/upload_parental_authorization.html:12
#: apps/registration/templates/registration/user_detail.html:60 #: apps/registration/templates/registration/user_detail.html:57
#: apps/registration/templates/registration/user_detail.html:73 #: apps/registration/templates/registration/user_detail.html:70
#: apps/registration/templates/registration/user_detail.html:83 #: apps/registration/templates/registration/user_detail.html:80
msgid "Download" msgid "Download"
msgstr "Télécharger" msgstr "Télécharger"
#: apps/participation/templates/participation/team_detail.html:99 #: apps/participation/templates/participation/team_detail.html:99
#: apps/registration/templates/registration/user_detail.html:63 #: apps/registration/templates/registration/user_detail.html:60
#: apps/registration/templates/registration/user_detail.html:76 #: apps/registration/templates/registration/user_detail.html:73
#: apps/registration/templates/registration/user_detail.html:86 #: apps/registration/templates/registration/user_detail.html:83
msgid "Replace" msgid "Replace"
msgstr "Remplacer" msgstr "Remplacer"
@ -852,7 +852,7 @@ msgid "Invalidate"
msgstr "Invalider" msgstr "Invalider"
#: apps/participation/templates/participation/team_detail.html:169 #: apps/participation/templates/participation/team_detail.html:169
#: apps/participation/views.py:323 #: apps/participation/views.py:320
msgid "Upload motivation letter" msgid "Upload motivation letter"
msgstr "Envoyer la lettre de motivation" msgstr "Envoyer la lettre de motivation"
@ -861,7 +861,7 @@ msgid "Update team"
msgstr "Modifier l'équipe" msgstr "Modifier l'équipe"
#: apps/participation/templates/participation/team_detail.html:179 #: apps/participation/templates/participation/team_detail.html:179
#: apps/participation/views.py:424 #: apps/participation/views.py:421
msgid "Leave team" msgid "Leave team"
msgstr "Quitter l'équipe" msgstr "Quitter l'équipe"
@ -965,49 +965,49 @@ msgstr "Ajouter un tournoi"
msgid "Back to the team detail" msgid "Back to the team detail"
msgstr "Retour aux détails de l'utilisateur" msgstr "Retour aux détails de l'utilisateur"
#: apps/participation/views.py:43 tfjm/templates/base.html:74 #: apps/participation/views.py:42 tfjm/templates/base.html:74
#: tfjm/templates/base.html:239 #: tfjm/templates/base.html:239
msgid "Create team" msgid "Create team"
msgstr "Créer une équipe" msgstr "Créer une équipe"
#: apps/participation/views.py:52 apps/participation/views.py:97 #: apps/participation/views.py:51 apps/participation/views.py:96
msgid "You don't participate, so you can't create a team." msgid "You don't participate, so you can't create a team."
msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe." msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
#: apps/participation/views.py:54 apps/participation/views.py:99 #: apps/participation/views.py:53 apps/participation/views.py:98
msgid "You are already in a team." msgid "You are already in a team."
msgstr "Vous êtes déjà dans une équipe." msgstr "Vous êtes déjà dans une équipe."
#: apps/participation/views.py:88 tfjm/templates/base.html:79 #: apps/participation/views.py:87 tfjm/templates/base.html:79
#: tfjm/templates/base.html:234 #: tfjm/templates/base.html:234
msgid "Join team" msgid "Join team"
msgstr "Rejoindre une équipe" msgstr "Rejoindre une équipe"
#: apps/participation/views.py:150 apps/participation/views.py:430 #: apps/participation/views.py:149 apps/participation/views.py:427
#: apps/participation/views.py:463 #: apps/participation/views.py:460
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:151 apps/participation/views.py:464 #: apps/participation/views.py:150 apps/participation/views.py:461
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."
#: apps/participation/views.py:175 #: apps/participation/views.py:174
#, python-brace-format #, python-brace-format
msgid "Detail of team {trigram}" msgid "Detail of team {trigram}"
msgstr "Détails de l'équipe {trigram}" msgstr "Détails de l'équipe {trigram}"
#: apps/participation/views.py:212 #: apps/participation/views.py:211
msgid "You don't participate, so you can't request the validation of the team." msgid "You don't participate, so you can't request the validation of the team."
msgstr "" msgstr ""
"Vous ne participez pas, vous ne pouvez pas demander la validation de " "Vous ne participez pas, vous ne pouvez pas demander la validation de "
"l'équipe." "l'équipe."
#: apps/participation/views.py:215 #: apps/participation/views.py:214
msgid "The validation of the team is already done or pending." msgid "The validation of the team is already done or 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:218 #: apps/participation/views.py:217
msgid "" msgid ""
"The team can't be validated: missing email address confirmations, " "The team can't be validated: missing email address confirmations, "
"authorizations, people, motivation letter or the tournament is not set." "authorizations, people, motivation letter or the tournament is not set."
@ -1016,66 +1016,66 @@ msgstr ""
"d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre " "d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
"de motivation, soit le tournoi n'a pas été choisi." "de motivation, soit le tournoi n'a pas été choisi."
#: apps/participation/views.py:239 #: apps/participation/views.py:236
msgid "You are not an organizer of the tournament." msgid "You are not an administrator."
msgstr "Vous n'êtes pas un organisateur du tournoi." msgstr "Vous n'êtes pas administrateur."
#: apps/participation/views.py:242 #: apps/participation/views.py:239
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:272 #: apps/participation/views.py:269
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:303 #: apps/participation/views.py:300
#, 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:361 apps/participation/views.py:410 #: apps/participation/views.py:358 apps/participation/views.py:407
#, python-brace-format #, python-brace-format
msgid "Motivation letter of {team}.{ext}" msgid "Motivation letter of {team}.{ext}"
msgstr "Lettre de motivation de {team}.{ext}" msgstr "Lettre de motivation de {team}.{ext}"
#: apps/participation/views.py:391 #: apps/participation/views.py:388
#, 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:397 #: apps/participation/views.py:394
#, 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:404 #: apps/participation/views.py:401
#, 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:414 #: apps/participation/views.py:411
#, 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:432 #: apps/participation/views.py:429
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:478 #: apps/participation/views.py:475
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:490 #: apps/participation/views.py:487
#, 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}"
#: apps/participation/views.py:579 #: apps/participation/views.py:576
msgid "You can't upload a solution after the deadline." msgid "You can't upload a solution after the deadline."
msgstr "Vous ne pouvez pas envoyer de solution après la date limite." msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
#: apps/participation/views.py:760 #: apps/participation/views.py:757
msgid "You can't upload a synthesis after the deadline." 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." msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."
@ -1087,7 +1087,7 @@ msgstr "rôle"
msgid "participant" msgid "participant"
msgstr "participant" msgstr "participant"
#: apps/registration/forms.py:24 apps/registration/models.py:259 #: apps/registration/forms.py:24 apps/registration/models.py:253
msgid "coach" msgid "coach"
msgstr "encadrant" msgstr "encadrant"
@ -1095,11 +1095,11 @@ msgstr "encadrant"
msgid "This email address is already used." msgid "This email address is already used."
msgstr "Cette adresse e-mail est déjà utilisée." msgstr "Cette adresse e-mail est déjà utilisée."
#: apps/registration/forms.py:55 apps/registration/models.py:285 #: apps/registration/forms.py:55 apps/registration/models.py:279
msgid "volunteer" msgid "volunteer"
msgstr "bénévole" msgstr "bénévole"
#: apps/registration/forms.py:56 apps/registration/models.py:304 #: apps/registration/forms.py:56 apps/registration/models.py:298
msgid "admin" msgid "admin"
msgstr "admin" msgstr "admin"
@ -1124,7 +1124,7 @@ msgstr "email confirmé"
msgid "Activate your TFJM² account" msgid "Activate your TFJM² account"
msgstr "Activez votre compte du TFJM²" msgstr "Activez votre compte du TFJM²"
#: apps/registration/models.py:99 apps/registration/models.py:325 #: apps/registration/models.py:99 apps/registration/models.py:319
msgid "registration" msgid "registration"
msgstr "inscription" msgstr "inscription"
@ -1161,143 +1161,131 @@ msgid "phone number"
msgstr "numéro de téléphone" msgstr "numéro de téléphone"
#: apps/registration/models.py:154 #: apps/registration/models.py:154
msgid "health issues"
msgstr "problèmes de santé"
#: apps/registration/models.py:156
msgid ""
"You can indicate here your allergies or anything that is important to know "
"for organizers"
msgstr ""
"Vous pouvez indiquer ici vos allergies ou n'importe quoi qui peut être bon à "
"savoir pour les organisateurs"
#: apps/registration/models.py:160
msgid "photo authorization" msgid "photo authorization"
msgstr "autorisation de droit à l'image" msgstr "autorisation de droit à l'image"
#: apps/registration/models.py:192 #: apps/registration/models.py:186
msgid "12th grade" msgid "12th grade"
msgstr "Terminale" msgstr "Terminale"
#: apps/registration/models.py:193 #: apps/registration/models.py:187
msgid "11th grade" msgid "11th grade"
msgstr "Première" msgstr "Première"
#: apps/registration/models.py:194 #: apps/registration/models.py:188
msgid "10th grade or lower" msgid "10th grade or lower"
msgstr "Seconde ou inférieur" msgstr "Seconde ou inférieur"
#: apps/registration/models.py:196 #: apps/registration/models.py:190
msgid "student class" msgid "student class"
msgstr "classe" msgstr "classe"
#: apps/registration/models.py:201 #: apps/registration/models.py:195
msgid "school" msgid "school"
msgstr "école" msgstr "école"
#: apps/registration/models.py:206 #: apps/registration/models.py:200
msgid "responsible name" msgid "responsible name"
msgstr "nom du responsable légal" msgstr "nom du responsable légal"
#: apps/registration/models.py:211 #: apps/registration/models.py:205
msgid "responsible phone number" msgid "responsible phone number"
msgstr "numéro de téléphone du responsable légal" msgstr "numéro de téléphone du responsable légal"
#: apps/registration/models.py:216 #: apps/registration/models.py:210
msgid "responsible email address" msgid "responsible email address"
msgstr "adresse e-mail du responsable légal" msgstr "adresse e-mail du responsable légal"
#: apps/registration/models.py:221 #: apps/registration/models.py:215
msgid "parental authorization" msgid "parental authorization"
msgstr "autorisation parentale" msgstr "autorisation parentale"
#: apps/registration/models.py:228 #: apps/registration/models.py:222
msgid "health sheet" msgid "health sheet"
msgstr "fiche sanitaire" msgstr "fiche sanitaire"
#: apps/registration/models.py:236 #: apps/registration/models.py:230
msgid "student" msgid "student"
msgstr "étudiant" msgstr "étudiant"
#: apps/registration/models.py:244 #: apps/registration/models.py:238
msgid "student registration" msgid "student registration"
msgstr "inscription d'élève" msgstr "inscription d'élève"
#: apps/registration/models.py:245 #: apps/registration/models.py:239
msgid "student registrations" msgid "student registrations"
msgstr "inscriptions d'élève" msgstr "inscriptions d'élève"
#: apps/registration/models.py:254 apps/registration/models.py:276 #: apps/registration/models.py:248 apps/registration/models.py:270
msgid "professional activity" msgid "professional activity"
msgstr "activité professionnelle" msgstr "activité professionnelle"
#: apps/registration/models.py:267 #: apps/registration/models.py:261
msgid "coach registration" msgid "coach registration"
msgstr "inscription d'encadrant" msgstr "inscription d'encadrant"
#: apps/registration/models.py:268 #: apps/registration/models.py:262
msgid "coach registrations" msgid "coach registrations"
msgstr "inscriptions d'encadrants" msgstr "inscriptions d'encadrants"
#: apps/registration/models.py:299 #: apps/registration/models.py:293
msgid "role of the administrator" msgid "role of the administrator"
msgstr "rôle de l'administrateur" msgstr "rôle de l'administrateur"
#: apps/registration/models.py:312 #: apps/registration/models.py:306
msgid "admin registration" msgid "admin registration"
msgstr "inscription d'administrateur" msgstr "inscription d'administrateur"
#: apps/registration/models.py:313 #: apps/registration/models.py:307
msgid "admin registrations" msgid "admin registrations"
msgstr "inscriptions d'administrateur" msgstr "inscriptions d'administrateur"
#: apps/registration/models.py:329 #: apps/registration/models.py:323
msgid "type" msgid "type"
msgstr "type" msgstr "type"
#: apps/registration/models.py:332 #: apps/registration/models.py:326
msgid "No payment" msgid "No payment"
msgstr "Pas de paiement" msgstr "Pas de paiement"
#: apps/registration/models.py:334 #: apps/registration/models.py:328
msgid "Scholarship" msgid "Scholarship"
msgstr "Notification de bourse" msgstr "Notification de bourse"
#: apps/registration/models.py:335 #: apps/registration/models.py:329
msgid "Bank transfer" msgid "Bank transfer"
msgstr "Virement bancaire" msgstr "Virement bancaire"
#: apps/registration/models.py:336 #: apps/registration/models.py:330
msgid "The tournament is free" msgid "The tournament is free"
msgstr "Le tournoi est gratuit" msgstr "Le tournoi est gratuit"
#: apps/registration/models.py:343 #: apps/registration/models.py:337
msgid "scholarship file" msgid "scholarship file"
msgstr "Notification de bourse" msgstr "Notification de bourse"
#: apps/registration/models.py:344 #: apps/registration/models.py:338
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:351 #: apps/registration/models.py:345
msgid "additional information" msgid "additional information"
msgstr "informations additionnelles" msgstr "informations additionnelles"
#: apps/registration/models.py:352 #: apps/registration/models.py:346
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:367 #: apps/registration/models.py:361
#, python-brace-format #, python-brace-format
msgid "Payment of {registration}" msgid "Payment of {registration}"
msgstr "Paiement de {registration}" msgstr "Paiement de {registration}"
#: apps/registration/models.py:370 #: apps/registration/models.py:364
msgid "payment" msgid "payment"
msgstr "paiement" msgstr "paiement"
#: apps/registration/models.py:371 #: apps/registration/models.py:365
msgid "payments" msgid "payments"
msgstr "paiements" msgstr "paiements"
@ -1584,95 +1572,91 @@ msgid "Phone number:"
msgstr "Numéro de téléphone :" msgstr "Numéro de téléphone :"
#: apps/registration/templates/registration/user_detail.html:54 #: apps/registration/templates/registration/user_detail.html:54
msgid "Health issues:"
msgstr "Problèmes de santé :"
#: apps/registration/templates/registration/user_detail.html:57
msgid "Photo authorization:" msgid "Photo authorization:"
msgstr "Autorisation de droit à l'image" msgstr "Autorisation de droit à l'image"
#: apps/registration/templates/registration/user_detail.html:70 #: apps/registration/templates/registration/user_detail.html:67
msgid "Health sheet:" msgid "Health sheet:"
msgstr "Fiche sanitaire :" msgstr "Fiche sanitaire :"
#: apps/registration/templates/registration/user_detail.html:80 #: apps/registration/templates/registration/user_detail.html:77
msgid "Parental authorization:" msgid "Parental authorization:"
msgstr "Autorisation parentale :" msgstr "Autorisation parentale :"
#: apps/registration/templates/registration/user_detail.html:91 #: apps/registration/templates/registration/user_detail.html:88
msgid "Student class:" msgid "Student class:"
msgstr "Classe :" msgstr "Classe :"
#: apps/registration/templates/registration/user_detail.html:94 #: apps/registration/templates/registration/user_detail.html:91
msgid "School:" msgid "School:"
msgstr "École :" msgstr "École :"
#: apps/registration/templates/registration/user_detail.html:97 #: apps/registration/templates/registration/user_detail.html:94
msgid "Responsible name:" msgid "Responsible name:"
msgstr "Nom du responsable légal :" msgstr "Nom du responsable légal :"
#: apps/registration/templates/registration/user_detail.html:100 #: apps/registration/templates/registration/user_detail.html:97
msgid "Responsible phone number:" msgid "Responsible phone number:"
msgstr "Numéro de téléphone du responsable légal :" msgstr "Numéro de téléphone du responsable légal :"
#: apps/registration/templates/registration/user_detail.html:103 #: apps/registration/templates/registration/user_detail.html:100
msgid "Responsible email address:" msgid "Responsible email address:"
msgstr "Adresse e-mail du responsable légal :" msgstr "Adresse e-mail du responsable légal :"
#: apps/registration/templates/registration/user_detail.html:108 #: apps/registration/templates/registration/user_detail.html:105
msgid "Role:" msgid "Role:"
msgstr "Rôle :" msgstr "Rôle :"
#: apps/registration/templates/registration/user_detail.html:111 #: apps/registration/templates/registration/user_detail.html:108
msgid "Profesional activity:" msgid "Profesional activity:"
msgstr "Activité professionnelle :" msgstr "Activité professionnelle :"
#: apps/registration/templates/registration/user_detail.html:115 #: apps/registration/templates/registration/user_detail.html:112
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 "Autorise Animath à recontacter à propos d'autres actions :" msgstr "Autorise Animath à recontacter à propos d'autres actions :"
#: apps/registration/templates/registration/user_detail.html:123 #: apps/registration/templates/registration/user_detail.html:120
msgid "Payment information:" msgid "Payment information:"
msgstr "Informations de paiement :" msgstr "Informations de paiement :"
#: apps/registration/templates/registration/user_detail.html:125 #: apps/registration/templates/registration/user_detail.html:122
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:126
#: apps/registration/templates/registration/user_detail.html:129 #: apps/registration/templates/registration/user_detail.html:129
#: apps/registration/templates/registration/user_detail.html:132
msgid "valid:" msgid "valid:"
msgstr "valide :" msgstr "valide :"
#: apps/registration/templates/registration/user_detail.html:136 #: apps/registration/templates/registration/user_detail.html:133
#: apps/registration/templates/registration/user_detail.html:189 #: apps/registration/templates/registration/user_detail.html:186
msgid "Update payment" msgid "Update payment"
msgstr "Modifier le paiement" msgstr "Modifier le paiement"
#: apps/registration/templates/registration/user_detail.html:142 #: apps/registration/templates/registration/user_detail.html:139
msgid "Download scholarship attestation" msgid "Download scholarship attestation"
msgstr "Télécharger l'attestation de bourse" msgstr "Télécharger l'attestation de bourse"
#: apps/registration/templates/registration/user_detail.html:155 #: apps/registration/templates/registration/user_detail.html:152
msgid "Impersonate" msgid "Impersonate"
msgstr "Impersonifier" msgstr "Impersonifier"
#: apps/registration/templates/registration/user_detail.html:161 #: apps/registration/templates/registration/user_detail.html:158
msgid "Update user" msgid "Update user"
msgstr "Modifier l'utilisateur" msgstr "Modifier l'utilisateur"
#: apps/registration/templates/registration/user_detail.html:167 #: apps/registration/templates/registration/user_detail.html:164
#: apps/registration/views.py:313 #: apps/registration/views.py:313
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:172 #: apps/registration/templates/registration/user_detail.html:169
#: apps/registration/views.py:334 #: apps/registration/views.py:334
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:177 #: apps/registration/templates/registration/user_detail.html:174
#: apps/registration/templates/registration/user_detail.html:182 #: apps/registration/templates/registration/user_detail.html:179
#: apps/registration/views.py:355 #: apps/registration/views.py:355
msgid "Upload parental authorization" msgid "Upload parental authorization"
msgstr "Téléverser l'autorisation parentale" msgstr "Téléverser l'autorisation parentale"
@ -1895,3 +1879,6 @@ msgstr "Résultats"
#: tfjm/templates/search/search.html:25 #: tfjm/templates/search/search.html:25
msgid "No results found." msgid "No results found."
msgstr "Aucun résultat." msgstr "Aucun résultat."
#~ msgid "The code of the form xxx-xxx-xxx at the end of the BBB link."
#~ msgstr "Le code de la forme xxx-xxx-xxx à la fin du lien BBB."