diff --git a/apps/participation/migrations/0003_tournament_remote.py b/apps/participation/migrations/0003_tournament_remote.py
new file mode 100644
index 0000000..1dca7a5
--- /dev/null
+++ b/apps/participation/migrations/0003_tournament_remote.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.0.11 on 2021-01-23 18:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('participation', '0002_auto_20210122_1926'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='tournament',
+ name='remote',
+ field=models.BooleanField(default=False, verbose_name='remote'),
+ ),
+ ]
diff --git a/apps/participation/models.py b/apps/participation/models.py
index 76886cf..9d02a64 100644
--- a/apps/participation/models.py
+++ b/apps/participation/models.py
@@ -157,6 +157,11 @@ class Tournament(models.Model):
default=21,
)
+ remote = models.BooleanField(
+ verbose_name=_("remote"),
+ default=False,
+ )
+
inscription_limit = models.DateTimeField(
verbose_name=_("limit date for registrations"),
default=timezone.now,
diff --git a/apps/participation/templates/participation/team_detail.html b/apps/participation/templates/participation/team_detail.html
index e3a7649..a78330d 100644
--- a/apps/participation/templates/participation/team_detail.html
+++ b/apps/participation/templates/participation/team_detail.html
@@ -60,31 +60,33 @@
{% endfor %}
-
{% trans "Health sheets:" %}
-
- {% for student in team.students.all %}
- {% if student.under_18 %}
- {% if student.health_sheet %}
- {{ student }}{% if not forloop.last %},{% endif %}
- {% else %}
- {{ student }} ({% trans "Not uploaded yet" %}){% if not forloop.last %},{% endif %}
+ {% if not team.participation.tournament.remote %}
+ {% trans "Health sheets:" %}
+
+ {% for student in team.students.all %}
+ {% if student.under_18 %}
+ {% if student.health_sheet %}
+ {{ student }}{% if not forloop.last %},{% endif %}
+ {% else %}
+ {{ student }} ({% trans "Not uploaded yet" %}){% if not forloop.last %},{% endif %}
+ {% endif %}
{% endif %}
- {% endif %}
- {% endfor %}
-
+ {% endfor %}
+
- {% trans "Parental authorizations:" %}
-
- {% for student in team.students.all %}
- {% if student.under_18 %}
- {% if student.parental_authorization %}
- {{ student }}{% if not forloop.last %},{% endif %}
- {% else %}
- {{ student }} ({% trans "Not uploaded yet" %}){% if not forloop.last %},{% endif %}
+ {% trans "Parental authorizations:" %}
+
+ {% for student in team.students.all %}
+ {% if student.under_18 %}
+ {% if student.parental_authorization %}
+ {{ student }}{% if not forloop.last %},{% endif %}
+ {% else %}
+ {{ student }} ({% trans "Not uploaded yet" %}){% if not forloop.last %},{% endif %}
+ {% endif %}
{% endif %}
- {% endif %}
- {% endfor %}
-
+ {% endfor %}
+
+ {% endif %}
{% trans "Motivation letter:" %}
diff --git a/apps/participation/templates/participation/tournament_detail.html b/apps/participation/templates/participation/tournament_detail.html
index d62150d..b53c57e 100644
--- a/apps/participation/templates/participation/tournament_detail.html
+++ b/apps/participation/templates/participation/tournament_detail.html
@@ -21,6 +21,9 @@
{% trans 'price'|capfirst %}
{% if tournament.price %}{{ tournament.price }} €{% else %}{% trans "Free" %}{% endif %}
+ {% trans 'remote'|capfirst %}
+ {{ tournament.remote|yesno }}
+
{% trans 'dates'|capfirst %}
{% trans "From" %} {{ tournament.date_start }} {% trans "to" %} {{ tournament.date_end }}
diff --git a/apps/participation/tests.py b/apps/participation/tests.py
index d8047b9..a54d054 100644
--- a/apps/participation/tests.py
+++ b/apps/participation/tests.py
@@ -292,6 +292,8 @@ class TestStudentParticipation(TestCase):
self.assertEqual(resp.status_code, 200)
self.assertFalse(resp.context["can_validate"])
+ self.team.participation.tournament = self.tournament
+ self.team.participation.save()
self.team.motivation_letter = "i_am_motivated.pdf"
self.team.save()
resp = self.client.get(reverse("participation:team_detail", args=(self.team.pk,)))
diff --git a/apps/participation/views.py b/apps/participation/views.py
index 235441f..90daffb 100644
--- a/apps/participation/views.py
+++ b/apps/participation/views.py
@@ -177,10 +177,13 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
# A team is complete when there are at least 4 members plus a coache that have sent their authorizations,
# their health sheet, they confirmed their email address and under-18 people sent their parental authorization.
context["can_validate"] = team.students.count() >= 4 and team.coaches.exists() and \
+ team.participation.tournament and \
all(r.email_confirmed for r in team.students.all()) and \
all(r.photo_authorization for r in team.participants.all()) and \
- all(r.health_sheet for r in team.students.all() if r.under_18) and \
- all(r.parental_authorization for r in team.students.all() if r.under_18) and \
+ (team.participation.tournament.remote
+ or all(r.health_sheet for r in team.students.all() if r.under_18)) and \
+ (team.participation.tournament.remote
+ or all(r.parental_authorization for r in team.students.all() if r.under_18)) and \
team.motivation_letter
return context
diff --git a/apps/registration/templates/registration/user_detail.html b/apps/registration/templates/registration/user_detail.html
index ba91172..c0d6320 100644
--- a/apps/registration/templates/registration/user_detail.html
+++ b/apps/registration/templates/registration/user_detail.html
@@ -62,7 +62,7 @@
{% endif %}
- {% if user_object.registration.studentregistration %}
+ {% if user_object.registration.studentregistration and user_object.registration.participation.tournament and not user_object.registration.participation.tournament.remote %}
{% if user_object.registration.under_18 %}
{% trans "Health sheet:" %}
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index 7d7ccf6..eadea53 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-22 09:43+0100\n"
+"POT-Creation-Date: 2021-01-23 19:56+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Yohann D'ANELLO \n"
"Language-Team: LANGUAGE \n"
@@ -99,8 +99,8 @@ msgstr "changelogs"
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
-#: apps/participation/admin.py:19 apps/participation/models.py:309
-#: apps/participation/tables.py:44 apps/registration/models.py:346
+#: apps/participation/admin.py:19 apps/participation/models.py:314
+#: apps/participation/tables.py:44 apps/registration/models.py:352
msgid "valid"
msgstr "valide"
@@ -178,12 +178,12 @@ msgstr "lettre de motivation"
msgid "Team {name} ({trigram})"
msgstr "Équipe {name} ({trigram})"
-#: apps/participation/models.py:122 apps/participation/models.py:294
+#: apps/participation/models.py:122 apps/participation/models.py:299
#: apps/registration/models.py:123
msgid "team"
msgstr "équipe"
-#: apps/participation/models.py:123 apps/participation/tables.py:84
+#: apps/participation/models.py:123 apps/participation/tables.py:85
msgid "teams"
msgstr "équipes"
@@ -210,98 +210,103 @@ msgid "price"
msgstr "prix"
#: apps/participation/models.py:161
+#: apps/participation/templates/participation/tournament_detail.html:24
+msgid "remote"
+msgstr "à distance"
+
+#: apps/participation/models.py:166
msgid "limit date for registrations"
msgstr "date limite d'inscription"
-#: apps/participation/models.py:166
+#: apps/participation/models.py:171
msgid "limit date to upload solutions"
msgstr "date limite pour envoyer les solutions"
-#: apps/participation/models.py:171
+#: apps/participation/models.py:176
msgid "random draw for solutions"
msgstr "tirage au sort des solutions"
-#: apps/participation/models.py:176
+#: apps/participation/models.py:181
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"
-#: apps/participation/models.py:181
+#: apps/participation/models.py:186
msgid "date when the solutions for the second round become available"
msgstr "date à laquelle les solutions pour le second tour sont accessibles"
-#: apps/participation/models.py:186
+#: apps/participation/models.py:191
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"
-#: apps/participation/models.py:191
-#: apps/participation/templates/participation/tournament_detail.html:45
+#: apps/participation/models.py:196
+#: apps/participation/templates/participation/tournament_detail.html:48
msgid "description"
msgstr "description"
-#: apps/participation/models.py:197
+#: apps/participation/models.py:202
#: apps/participation/templates/participation/tournament_detail.html:12
msgid "organizers"
msgstr "organisateurs"
-#: apps/participation/models.py:202
+#: apps/participation/models.py:207
msgid "final"
msgstr "finale"
-#: apps/participation/models.py:279 apps/participation/models.py:303
-#: apps/participation/models.py:335
+#: apps/participation/models.py:284 apps/participation/models.py:308
+#: apps/participation/models.py:340
msgid "tournament"
msgstr "tournoi"
-#: apps/participation/models.py:280
+#: apps/participation/models.py:285
msgid "tournaments"
msgstr "tournois"
-#: apps/participation/models.py:310
+#: apps/participation/models.py:315
msgid "The participation got the validation of the organizers."
msgstr "La participation a été validée par les organisateurs."
-#: apps/participation/models.py:315
+#: apps/participation/models.py:320
msgid "selected for final"
msgstr "sélectionnée pour la finale"
-#: apps/participation/models.py:316
+#: apps/participation/models.py:321
msgid "The team is selected for the final tournament."
msgstr "L'équipe est sélectionnée pour la finale."
-#: apps/participation/models.py:323
+#: apps/participation/models.py:328
#, python-brace-format
msgid "Participation of the team {name} ({trigram})"
msgstr "Participation de l'équipe {name} ({trigram})"
-#: apps/participation/models.py:326 apps/participation/models.py:523
+#: apps/participation/models.py:331 apps/participation/models.py:523
#: apps/participation/models.py:561
msgid "participation"
msgstr "participation"
-#: apps/participation/models.py:327 apps/participation/models.py:349
+#: apps/participation/models.py:332 apps/participation/models.py:354
msgid "participations"
msgstr "participations"
-#: apps/participation/models.py:339
+#: apps/participation/models.py:344
msgid "round"
msgstr "tour"
-#: apps/participation/models.py:341 apps/participation/models.py:342
+#: apps/participation/models.py:346 apps/participation/models.py:347
#, python-brace-format
msgid "Round {round}"
msgstr "Tour {round}"
-#: apps/participation/models.py:355
+#: apps/participation/models.py:360
msgid "juries"
msgstr "jurys"
-#: apps/participation/models.py:362
-msgid "BigBlueButton code"
-msgstr "Code BigBlueButton"
+#: apps/participation/models.py:367
+msgid "BigBlueButton URL"
+msgstr "Lien BigBlueButton"
-#: apps/participation/models.py:363
-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."
+#: apps/participation/models.py:368
+msgid "The link of the BBB visio for this pool."
+msgstr "Le lien du salon BBB pour cette poule."
#: apps/participation/models.py:382
#, python-brace-format
@@ -329,7 +334,7 @@ msgstr "solution défendue"
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
-#: apps/participation/models.py:417 apps/participation/tables.py:105
+#: apps/participation/models.py:417 apps/participation/tables.py:106
msgid "defender"
msgstr "défenseur"
@@ -461,7 +466,7 @@ msgstr "date"
msgid "From {start} to {end}"
msgstr "Du {start} au {end}"
-#: apps/participation/tables.py:90
+#: apps/participation/tables.py:91
msgid "No defined team"
msgstr "Pas d'équipe définie"
@@ -501,12 +506,12 @@ msgstr ""
#: apps/participation/templates/participation/create_team.html:11
#: apps/participation/templates/participation/tournament_form.html:14
-#: tfjm/templates/base.html:234
+#: tfjm/templates/base.html:240
msgid "Create"
msgstr "Créer"
#: apps/participation/templates/participation/join_team.html:11
-#: tfjm/templates/base.html:229
+#: tfjm/templates/base.html:235
msgid "Join"
msgstr "Rejoindre"
@@ -517,8 +522,8 @@ msgstr "Rejoindre"
#: apps/participation/templates/participation/pool_detail.html:55
#: apps/participation/templates/participation/pool_detail.html:73
#: apps/participation/templates/participation/pool_detail.html:78
-#: apps/participation/templates/participation/team_detail.html:109
-#: apps/participation/templates/participation/team_detail.html:173
+#: apps/participation/templates/participation/team_detail.html:111
+#: apps/participation/templates/participation/team_detail.html:175
#: apps/participation/templates/participation/tournament_form.html:12
#: apps/participation/templates/participation/update_team.html:12
#: apps/registration/templates/registration/payment_form.html:49
@@ -574,7 +579,7 @@ msgstr "Envoyer une solution"
#: apps/participation/templates/participation/participation_detail.html:50
#: apps/participation/templates/participation/passage_detail.html:110
-#: apps/participation/templates/participation/team_detail.html:168
+#: apps/participation/templates/participation/team_detail.html:170
#: apps/participation/templates/participation/upload_motivation_letter.html:13
#: apps/participation/templates/participation/upload_solution.html:11
#: apps/participation/templates/participation/upload_synthesis.html:11
@@ -696,7 +701,7 @@ msgid "BigBlueButton link:"
msgstr "Lien BigBlueButton :"
#: apps/participation/templates/participation/pool_detail.html:41
-#: apps/participation/templates/participation/tournament_detail.html:91
+#: apps/participation/templates/participation/tournament_detail.html:94
msgid "Ranking"
msgstr "Classement"
@@ -715,7 +720,7 @@ msgid "Passages"
msgstr "Passages"
#: apps/participation/templates/participation/pool_detail.html:68
-#: apps/participation/templates/participation/tournament_detail.html:105
+#: apps/participation/templates/participation/tournament_detail.html:108
msgid "Add"
msgstr "Ajouter"
@@ -754,25 +759,25 @@ msgid "Photo authorizations:"
msgstr "Autorisations de droit à l'image :"
#: apps/participation/templates/participation/team_detail.html:58
-#: apps/participation/templates/participation/team_detail.html:70
-#: apps/participation/templates/participation/team_detail.html:83
-#: apps/participation/templates/participation/team_detail.html:94
+#: apps/participation/templates/participation/team_detail.html:71
+#: apps/participation/templates/participation/team_detail.html:84
+#: apps/participation/templates/participation/team_detail.html:96
msgid "Not uploaded yet"
msgstr "Pas encore envoyée"
-#: apps/participation/templates/participation/team_detail.html:63
+#: apps/participation/templates/participation/team_detail.html:64
msgid "Health sheets:"
msgstr "Fiches sanitaires :"
-#: apps/participation/templates/participation/team_detail.html:76
+#: apps/participation/templates/participation/team_detail.html:77
msgid "Parental authorizations:"
msgstr "Autorisations parentales :"
-#: apps/participation/templates/participation/team_detail.html:89
+#: apps/participation/templates/participation/team_detail.html:91
msgid "Motivation letter:"
msgstr "Lettre de motivation :"
-#: apps/participation/templates/participation/team_detail.html:92
+#: apps/participation/templates/participation/team_detail.html:94
#: apps/registration/templates/registration/upload_health_sheet.html:12
#: apps/registration/templates/registration/upload_parental_authorization.html:12
#: apps/registration/templates/registration/user_detail.html:57
@@ -781,28 +786,28 @@ msgstr "Lettre de motivation :"
msgid "Download"
msgstr "Télécharger"
-#: apps/participation/templates/participation/team_detail.html:97
+#: apps/participation/templates/participation/team_detail.html:99
#: apps/registration/templates/registration/user_detail.html:60
#: apps/registration/templates/registration/user_detail.html:73
#: apps/registration/templates/registration/user_detail.html:83
msgid "Replace"
msgstr "Remplacer"
-#: apps/participation/templates/participation/team_detail.html:104
+#: apps/participation/templates/participation/team_detail.html:106
msgid "Download all authorizations"
msgstr "Télécharger toutes les autorisations"
-#: apps/participation/templates/participation/team_detail.html:111
-#: apps/participation/templates/participation/team_detail.html:178
+#: apps/participation/templates/participation/team_detail.html:113
+#: apps/participation/templates/participation/team_detail.html:180
#: apps/participation/templates/participation/team_leave.html:11
msgid "Leave"
msgstr "Quitter"
-#: apps/participation/templates/participation/team_detail.html:121
+#: apps/participation/templates/participation/team_detail.html:123
msgid "Access to team participation"
msgstr "Accéder à la participation de l'équipe"
-#: apps/participation/templates/participation/team_detail.html:128
+#: apps/participation/templates/participation/team_detail.html:130
msgid ""
"Your team has at least 4 members and a coach and all authorizations were "
"given: the team can be validated."
@@ -810,11 +815,11 @@ msgstr ""
"Votre équipe contient au moins 4 personnes et un encadrant et toutes les "
"autorisations ont été données : l'équipe peut être validée."
-#: apps/participation/templates/participation/team_detail.html:133
+#: apps/participation/templates/participation/team_detail.html:135
msgid "Submit my team to validation"
msgstr "Soumettre mon équipe à validation"
-#: apps/participation/templates/participation/team_detail.html:139
+#: apps/participation/templates/participation/team_detail.html:141
msgid ""
"Your team must be composed of 4 members and a coach and each member must "
"upload their authorizations and confirm its email address."
@@ -822,15 +827,15 @@ msgstr ""
"Votre équipe doit être composée de 4 membres et un encadrant et chaque "
"membre doit envoyer ses autorisations et confirmé son adresse e-mail."
-#: apps/participation/templates/participation/team_detail.html:144
+#: apps/participation/templates/participation/team_detail.html:146
msgid "This team didn't ask for validation yet."
msgstr "L'équipe n'a pas encore demandé à être validée."
-#: apps/participation/templates/participation/team_detail.html:150
+#: apps/participation/templates/participation/team_detail.html:152
msgid "Your validation is pending."
msgstr "Votre validation est en attente."
-#: apps/participation/templates/participation/team_detail.html:154
+#: apps/participation/templates/participation/team_detail.html:156
msgid ""
"The team requested to be validated. You may now control the authorizations "
"and confirm that they can participate."
@@ -838,25 +843,25 @@ msgstr ""
"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
"différentes autorisations et confirmer qu'elle peut participer."
-#: apps/participation/templates/participation/team_detail.html:160
+#: apps/participation/templates/participation/team_detail.html:162
msgid "Validate"
msgstr "Valider"
-#: apps/participation/templates/participation/team_detail.html:161
+#: apps/participation/templates/participation/team_detail.html:163
msgid "Invalidate"
msgstr "Invalider"
-#: apps/participation/templates/participation/team_detail.html:167
-#: apps/participation/views.py:317
+#: apps/participation/templates/participation/team_detail.html:169
+#: apps/participation/views.py:320
msgid "Upload motivation letter"
msgstr "Envoyer la lettre de motivation"
-#: apps/participation/templates/participation/team_detail.html:172
+#: apps/participation/templates/participation/team_detail.html:174
msgid "Update team"
msgstr "Modifier l'équipe"
-#: apps/participation/templates/participation/team_detail.html:177
-#: apps/participation/views.py:418
+#: apps/participation/templates/participation/team_detail.html:179
+#: apps/participation/views.py:421
msgid "Leave team"
msgstr "Quitter l'équipe"
@@ -865,7 +870,7 @@ msgid "Are you sure that you want to leave this team?"
msgstr "Êtes-vous sûr·e de vouloir quitter cette équipe ?"
#: apps/participation/templates/participation/team_list.html:6
-#: tfjm/templates/base.html:222
+#: tfjm/templates/base.html:228
msgid "All teams"
msgstr "Toutes les équipes"
@@ -877,78 +882,78 @@ msgstr "taille"
msgid "Free"
msgstr "Gratuit"
-#: apps/participation/templates/participation/tournament_detail.html:24
+#: apps/participation/templates/participation/tournament_detail.html:27
msgid "dates"
msgstr "dates"
-#: apps/participation/templates/participation/tournament_detail.html:25
+#: apps/participation/templates/participation/tournament_detail.html:28
msgid "From"
msgstr "Du"
-#: apps/participation/templates/participation/tournament_detail.html:25
+#: apps/participation/templates/participation/tournament_detail.html:28
msgid "to"
msgstr "au"
-#: apps/participation/templates/participation/tournament_detail.html:27
+#: apps/participation/templates/participation/tournament_detail.html:30
msgid "date of registration closing"
msgstr "date de clôture des inscriptions"
-#: apps/participation/templates/participation/tournament_detail.html:30
+#: apps/participation/templates/participation/tournament_detail.html:33
msgid "date of maximal solution submission"
msgstr "date limite d'envoi des solutions"
-#: apps/participation/templates/participation/tournament_detail.html:33
+#: apps/participation/templates/participation/tournament_detail.html:36
msgid "date of the random draw"
msgstr "date du tirage au sort"
-#: apps/participation/templates/participation/tournament_detail.html:36
+#: apps/participation/templates/participation/tournament_detail.html:39
msgid "date of maximal syntheses submission for the first round"
msgstr "date limite de soumission des notes de synthèse pour le premier tour"
-#: apps/participation/templates/participation/tournament_detail.html:39
+#: apps/participation/templates/participation/tournament_detail.html:42
msgid "date when solutions of round 2 are available"
msgstr ""
"date à partir de laquelle les solutions pour le second tour sont disponibles"
-#: apps/participation/templates/participation/tournament_detail.html:42
+#: apps/participation/templates/participation/tournament_detail.html:45
msgid "date of maximal syntheses submission for the second round"
msgstr "date limite de soumission des notes de synthèse pour le second tour"
-#: apps/participation/templates/participation/tournament_detail.html:48
+#: apps/participation/templates/participation/tournament_detail.html:51
msgid "To contact organizers"
msgstr "Pour contacter les organisateurs"
-#: apps/participation/templates/participation/tournament_detail.html:51
+#: apps/participation/templates/participation/tournament_detail.html:54
msgid "To contact juries"
msgstr "Pour contacter les jurys"
-#: apps/participation/templates/participation/tournament_detail.html:54
+#: apps/participation/templates/participation/tournament_detail.html:57
msgid "To contact valid teams"
msgstr "Pour contacter les équipes valides"
-#: apps/participation/templates/participation/tournament_detail.html:61
+#: apps/participation/templates/participation/tournament_detail.html:64
msgid "Edit tournament"
msgstr "Modifier le tournoi"
-#: apps/participation/templates/participation/tournament_detail.html:68
+#: apps/participation/templates/participation/tournament_detail.html:71
#: tfjm/templates/base.html:68
msgid "Teams"
msgstr "Équipes"
-#: apps/participation/templates/participation/tournament_detail.html:76
+#: apps/participation/templates/participation/tournament_detail.html:79
msgid "Pools"
msgstr "Poules"
-#: apps/participation/templates/participation/tournament_detail.html:83
+#: apps/participation/templates/participation/tournament_detail.html:86
msgid "Add new pool"
msgstr "Ajouter une nouvelle poule"
-#: apps/participation/templates/participation/tournament_detail.html:104
+#: apps/participation/templates/participation/tournament_detail.html:107
msgid "Add pool"
msgstr "Ajouter une poule"
#: apps/participation/templates/participation/tournament_list.html:6
-#: tfjm/templates/base.html:218
+#: tfjm/templates/base.html:224
msgid "All tournaments"
msgstr "Tous les tournois"
@@ -961,7 +966,7 @@ msgid "Back to the team detail"
msgstr "Retour aux détails de l'utilisateur"
#: apps/participation/views.py:42 tfjm/templates/base.html:74
-#: tfjm/templates/base.html:233
+#: tfjm/templates/base.html:239
msgid "Create team"
msgstr "Créer une équipe"
@@ -974,16 +979,16 @@ msgid "You are already in a team."
msgstr "Vous êtes déjà dans une équipe."
#: apps/participation/views.py:87 tfjm/templates/base.html:79
-#: tfjm/templates/base.html:228
+#: tfjm/templates/base.html:234
msgid "Join team"
msgstr "Rejoindre une équipe"
-#: apps/participation/views.py:149 apps/participation/views.py:424
-#: apps/participation/views.py:457
+#: apps/participation/views.py:149 apps/participation/views.py:427
+#: apps/participation/views.py:460
msgid "You are not in a team."
msgstr "Vous n'êtes pas dans une équipe."
-#: apps/participation/views.py:150 apps/participation/views.py:458
+#: apps/participation/views.py:150 apps/participation/views.py:461
msgid "You don't participate, so you don't have any team."
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
@@ -992,17 +997,17 @@ msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
msgid "Detail of team {trigram}"
msgstr "Détails de l'équipe {trigram}"
-#: apps/participation/views.py:208
+#: apps/participation/views.py:211
msgid "You don't participate, so you can't request the validation of the team."
msgstr ""
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
"l'équipe."
-#: apps/participation/views.py:211
+#: apps/participation/views.py:214
msgid "The validation of the team is already done or pending."
msgstr "La validation de l'équipe est déjà faite ou en cours."
-#: apps/participation/views.py:214
+#: apps/participation/views.py:217
msgid ""
"The team can't be validated: missing email address confirmations, "
"authorizations, people, motivation letter or the tournament is not set."
@@ -1011,66 +1016,66 @@ msgstr ""
"d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
"de motivation, soit le tournoi n'a pas été choisi."
-#: apps/participation/views.py:233
+#: apps/participation/views.py:236
msgid "You are not an administrator."
msgstr "Vous n'êtes pas administrateur."
-#: apps/participation/views.py:236
+#: apps/participation/views.py:239
msgid "This team has no pending validation."
msgstr "L'équipe n'a pas de validation en attente."
-#: apps/participation/views.py:266
+#: apps/participation/views.py:269
msgid "You must specify if you validate the registration or not."
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
-#: apps/participation/views.py:297
+#: apps/participation/views.py:300
#, python-brace-format
msgid "Update team {trigram}"
msgstr "Mise à jour de l'équipe {trigram}"
-#: apps/participation/views.py:355 apps/participation/views.py:404
+#: apps/participation/views.py:358 apps/participation/views.py:407
#, python-brace-format
msgid "Motivation letter of {team}.{ext}"
msgstr "Lettre de motivation de {team}.{ext}"
-#: apps/participation/views.py:385
+#: apps/participation/views.py:388
#, python-brace-format
msgid "Photo authorization of {participant}.{ext}"
msgstr "Autorisation de droit à l'image de {participant}.{ext}"
-#: apps/participation/views.py:391
+#: apps/participation/views.py:394
#, python-brace-format
msgid "Parental authorization of {participant}.{ext}"
msgstr "Autorisation parentale de {participant}.{ext}"
-#: apps/participation/views.py:398
+#: apps/participation/views.py:401
#, python-brace-format
msgid "Health sheet of {participant}.{ext}"
msgstr "Fiche sanitaire de {participant}.{ext}"
-#: apps/participation/views.py:408
+#: apps/participation/views.py:411
#, python-brace-format
msgid "Photo authorizations of team {trigram}.zip"
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
-#: apps/participation/views.py:426
+#: apps/participation/views.py:429
msgid "The team is already validated or the validation is pending."
msgstr "La validation de l'équipe est déjà faite ou en cours."
-#: apps/participation/views.py:472
+#: apps/participation/views.py:475
msgid "The team is not validated yet."
msgstr "L'équipe n'est pas encore validée."
-#: apps/participation/views.py:484
+#: apps/participation/views.py:487
#, python-brace-format
msgid "Participation of team {trigram}"
msgstr "Participation de l'équipe {trigram}"
-#: apps/participation/views.py:573
+#: apps/participation/views.py:576
msgid "You can't upload a solution after the deadline."
msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
-#: apps/participation/views.py:754
+#: apps/participation/views.py:757
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."
@@ -1082,7 +1087,7 @@ msgstr "rôle"
msgid "participant"
msgstr "participant"
-#: apps/registration/forms.py:24 apps/registration/models.py:247
+#: apps/registration/forms.py:24 apps/registration/models.py:253
msgid "coach"
msgstr "encadrant"
@@ -1090,11 +1095,11 @@ msgstr "encadrant"
msgid "This email address is already used."
msgstr "Cette adresse e-mail est déjà utilisée."
-#: apps/registration/forms.py:55 apps/registration/models.py:273
+#: apps/registration/forms.py:55 apps/registration/models.py:279
msgid "volunteer"
msgstr "bénévole"
-#: apps/registration/forms.py:56 apps/registration/models.py:292
+#: apps/registration/forms.py:56 apps/registration/models.py:298
msgid "admin"
msgstr "admin"
@@ -1119,7 +1124,7 @@ msgstr "email confirmé"
msgid "Activate your TFJM² account"
msgstr "Activez votre compte du TFJM²"
-#: apps/registration/models.py:99 apps/registration/models.py:313
+#: apps/registration/models.py:99 apps/registration/models.py:319
msgid "registration"
msgstr "inscription"
@@ -1159,128 +1164,128 @@ msgstr "numéro de téléphone"
msgid "photo authorization"
msgstr "autorisation de droit à l'image"
-#: apps/registration/models.py:180
+#: apps/registration/models.py:186
msgid "12th grade"
msgstr "Terminale"
-#: apps/registration/models.py:181
+#: apps/registration/models.py:187
msgid "11th grade"
msgstr "Première"
-#: apps/registration/models.py:182
+#: apps/registration/models.py:188
msgid "10th grade or lower"
msgstr "Seconde ou inférieur"
-#: apps/registration/models.py:184
+#: apps/registration/models.py:190
msgid "student class"
msgstr "classe"
-#: apps/registration/models.py:189
+#: apps/registration/models.py:195
msgid "school"
msgstr "école"
-#: apps/registration/models.py:194
+#: apps/registration/models.py:200
msgid "responsible name"
msgstr "nom du responsable légal"
-#: apps/registration/models.py:199
+#: apps/registration/models.py:205
msgid "responsible phone number"
msgstr "numéro de téléphone du responsable légal"
-#: apps/registration/models.py:204
+#: apps/registration/models.py:210
msgid "responsible email address"
msgstr "adresse e-mail du responsable légal"
-#: apps/registration/models.py:209
+#: apps/registration/models.py:215
msgid "parental authorization"
msgstr "autorisation parentale"
-#: apps/registration/models.py:216
+#: apps/registration/models.py:222
msgid "health sheet"
msgstr "fiche sanitaire"
-#: apps/registration/models.py:224
+#: apps/registration/models.py:230
msgid "student"
msgstr "étudiant"
-#: apps/registration/models.py:232
+#: apps/registration/models.py:238
msgid "student registration"
msgstr "inscription d'élève"
-#: apps/registration/models.py:233
+#: apps/registration/models.py:239
msgid "student registrations"
msgstr "inscriptions d'élève"
-#: apps/registration/models.py:242 apps/registration/models.py:264
+#: apps/registration/models.py:248 apps/registration/models.py:270
msgid "professional activity"
msgstr "activité professionnelle"
-#: apps/registration/models.py:255
+#: apps/registration/models.py:261
msgid "coach registration"
msgstr "inscription d'encadrant"
-#: apps/registration/models.py:256
+#: apps/registration/models.py:262
msgid "coach registrations"
msgstr "inscriptions d'encadrants"
-#: apps/registration/models.py:287
+#: apps/registration/models.py:293
msgid "role of the administrator"
msgstr "rôle de l'administrateur"
-#: apps/registration/models.py:300
+#: apps/registration/models.py:306
msgid "admin registration"
msgstr "inscription d'administrateur"
-#: apps/registration/models.py:301
+#: apps/registration/models.py:307
msgid "admin registrations"
msgstr "inscriptions d'administrateur"
-#: apps/registration/models.py:317
+#: apps/registration/models.py:323
msgid "type"
msgstr "type"
-#: apps/registration/models.py:320
+#: apps/registration/models.py:326
msgid "No payment"
msgstr "Pas de paiement"
-#: apps/registration/models.py:322
+#: apps/registration/models.py:328
msgid "Scholarship"
msgstr "Notification de bourse"
-#: apps/registration/models.py:323
+#: apps/registration/models.py:329
msgid "Bank transfer"
msgstr "Virement bancaire"
-#: apps/registration/models.py:324
+#: apps/registration/models.py:330
msgid "The tournament is free"
msgstr "Le tournoi est gratuit"
-#: apps/registration/models.py:331
+#: apps/registration/models.py:337
msgid "scholarship file"
msgstr "Notification de bourse"
-#: apps/registration/models.py:332
+#: apps/registration/models.py:338
msgid "only if you have a scholarship."
msgstr "Nécessaire seulement si vous déclarez être boursier."
-#: apps/registration/models.py:339
+#: apps/registration/models.py:345
msgid "additional information"
msgstr "informations additionnelles"
-#: apps/registration/models.py:340
+#: apps/registration/models.py:346
msgid "To help us to find your payment."
msgstr "Pour nous aider à retrouver votre paiement, si nécessaire."
-#: apps/registration/models.py:355
+#: apps/registration/models.py:361
#, python-brace-format
msgid "Payment of {registration}"
msgstr "Paiement de {registration}"
-#: apps/registration/models.py:358
+#: apps/registration/models.py:364
msgid "payment"
msgstr "paiement"
-#: apps/registration/models.py:359
+#: apps/registration/models.py:365
msgid "payments"
msgstr "paiements"
@@ -1390,8 +1395,8 @@ msgid "Your password has been set. You may go ahead and log in now."
msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
#: apps/registration/templates/registration/password_reset_complete.html:10
-#: tfjm/templates/base.html:127 tfjm/templates/base.html:238
-#: tfjm/templates/base.html:239 tfjm/templates/registration/login.html:7
+#: tfjm/templates/base.html:127 tfjm/templates/base.html:244
+#: tfjm/templates/base.html:245 tfjm/templates/registration/login.html:7
#: tfjm/templates/registration/login.html:8
#: tfjm/templates/registration/login.html:25
msgid "Log in"
@@ -1641,18 +1646,18 @@ msgid "Update user"
msgstr "Modifier l'utilisateur"
#: apps/registration/templates/registration/user_detail.html:164
-#: apps/registration/views.py:319
+#: apps/registration/views.py:313
msgid "Upload photo authorization"
msgstr "Téléverser l'autorisation de droit à l'image"
#: apps/registration/templates/registration/user_detail.html:169
-#: apps/registration/views.py:346
+#: apps/registration/views.py:334
msgid "Upload health sheet"
msgstr "Téléverser la fiche sanitaire"
#: apps/registration/templates/registration/user_detail.html:174
#: apps/registration/templates/registration/user_detail.html:179
-#: apps/registration/views.py:373
+#: apps/registration/views.py:355
msgid "Upload parental authorization"
msgstr "Téléverser l'autorisation parentale"
@@ -1685,36 +1690,36 @@ msgstr "Renvoyé le lien de validation de l'adresse mail"
msgid "Detail of user {user}"
msgstr "Détails de l'utilisateur {user}"
-#: apps/registration/views.py:283
+#: apps/registration/views.py:277
#, python-brace-format
msgid "Update user {user}"
msgstr "Mise à jour de l'utilisateur {user}"
-#: apps/registration/views.py:483
+#: apps/registration/views.py:459
#, python-brace-format
msgid "Photo authorization of {student}.{ext}"
msgstr "Autorisation de droit à l'image de {student}.{ext}"
-#: apps/registration/views.py:506
+#: apps/registration/views.py:482
#, python-brace-format
msgid "Health sheet of {student}.{ext}"
msgstr "Fiche sanitaire de {student}.{ext}"
-#: apps/registration/views.py:529
+#: apps/registration/views.py:505
#, python-brace-format
msgid "Parental authorization of {student}.{ext}"
msgstr "Autorisation parentale de {student}.{ext}"
-#: apps/registration/views.py:551
+#: apps/registration/views.py:527
#, python-brace-format
msgid "Scholarship attestation of {user}.{ext}"
msgstr "Notification de bourse de {user}.{ext}"
-#: tfjm/settings.py:162
+#: tfjm/settings.py:163
msgid "English"
msgstr "Anglais"
-#: tfjm/settings.py:163
+#: tfjm/settings.py:164
msgid "French"
msgstr "Français"
@@ -1830,15 +1835,15 @@ msgstr ""
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur ce lien."
-#: tfjm/templates/base.html:183
+#: tfjm/templates/base.html:189
msgid "Contact us"
msgstr "Nous contacter"
-#: tfjm/templates/base.html:202
+#: tfjm/templates/base.html:208
msgid "About"
msgstr "À propos"
-#: tfjm/templates/base.html:225
+#: tfjm/templates/base.html:231
msgid "Search results"
msgstr "Résultats de la recherche"
@@ -1874,3 +1879,6 @@ msgstr "Résultats"
#: tfjm/templates/search/search.html:25
msgid "No results found."
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."