diff --git a/apps/participation/models.py b/apps/participation/models.py
index cf2b075..d19a0d6 100644
--- a/apps/participation/models.py
+++ b/apps/participation/models.py
@@ -353,6 +353,10 @@ class Pool(models.Model):
validators=[RegexValidator("[a-z]{3}-[a-z]{3}-[a-z]{3}")],
)
+ @property
+ def bbb_url(self):
+ return f"https://visio.animath.live/b/{self.bbb_code}"
+
@property
def solutions(self):
return Solution.objects.filter(participation__in=self.participations, final_solution=self.tournament.final)
diff --git a/apps/participation/templates/participation/pool_detail.html b/apps/participation/templates/participation/pool_detail.html
index d790fef..287cf71 100644
--- a/apps/participation/templates/participation/pool_detail.html
+++ b/apps/participation/templates/participation/pool_detail.html
@@ -31,6 +31,9 @@
{{ passage.defended_solution }}{% if not forloop.last %}, {% endif %}
{% endfor %}
+
+
{% trans "BigBlueButton link:" %}
+ {{ pool.bbb_url }}
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index d27ab4b..7994fd7 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-21 17:46+0100\n"
+"POT-Creation-Date: 2021-01-21 22:31+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Yohann D'ANELLO \n"
"Language-Team: LANGUAGE \n"
@@ -185,7 +185,7 @@ msgstr "début"
msgid "end"
msgstr "fin"
-#: apps/participation/models.py:136 apps/participation/models.py:386
+#: apps/participation/models.py:136 apps/participation/models.py:390
#: apps/participation/templates/participation/tournament_detail.html:18
msgid "place"
msgstr "lieu"
@@ -263,8 +263,8 @@ msgstr "L'équipe est sélectionnée pour la finale."
msgid "Participation of the team {name} ({trigram})"
msgstr "Participation de l'équipe {name} ({trigram})"
-#: apps/participation/models.py:315 apps/participation/models.py:508
-#: apps/participation/models.py:546
+#: apps/participation/models.py:315 apps/participation/models.py:512
+#: apps/participation/models.py:550
msgid "participation"
msgstr "participation"
@@ -285,148 +285,148 @@ msgstr "Tour {round}"
msgid "juries"
msgstr "jurys"
-#: apps/participation/models.py:352
+#: apps/participation/models.py:351
msgid "BigBlueButton code"
msgstr "Code BigBlueButton"
-#: apps/participation/models.py:353
+#: apps/participation/models.py:352
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:367
+#: apps/participation/models.py:371
#, python-brace-format
msgid "Pool {round} for tournament {tournament} with teams {teams}"
msgstr "Poule {round} du tournoi {tournament} avec les équipes {teams}"
-#: apps/participation/models.py:373 apps/participation/models.py:381
+#: apps/participation/models.py:377 apps/participation/models.py:385
msgid "pool"
msgstr "poule"
-#: apps/participation/models.py:374
+#: apps/participation/models.py:378
msgid "pools"
msgstr "poules"
-#: apps/participation/models.py:388
+#: apps/participation/models.py:392
msgid "Where the solution is presented?"
msgstr "Où est-ce que les solutions sont défendues ?"
-#: apps/participation/models.py:393
+#: apps/participation/models.py:397
msgid "defended solution"
msgstr "solution défendue"
-#: apps/participation/models.py:395 apps/participation/models.py:515
+#: apps/participation/models.py:399 apps/participation/models.py:519
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
-#: apps/participation/models.py:402 apps/participation/tables.py:105
+#: apps/participation/models.py:406 apps/participation/tables.py:105
msgid "defender"
msgstr "défenseur"
-#: apps/participation/models.py:409 apps/participation/models.py:558
+#: apps/participation/models.py:413 apps/participation/models.py:562
msgid "opponent"
msgstr "opposant"
-#: apps/participation/models.py:416 apps/participation/models.py:559
+#: apps/participation/models.py:420 apps/participation/models.py:563
msgid "reporter"
msgstr "rapporteur"
-#: apps/participation/models.py:476 apps/participation/models.py:479
-#: apps/participation/models.py:482
+#: apps/participation/models.py:480 apps/participation/models.py:483
+#: apps/participation/models.py:486
#, python-brace-format
msgid "Team {trigram} is not registered in the pool."
msgstr "L'équipe {trigram} n'est pas inscrite dans la poule."
-#: apps/participation/models.py:487
+#: apps/participation/models.py:491
#, python-brace-format
msgid "Passage of {defender} for problem {problem}"
msgstr "Passage de {defender} pour le problème {problem}"
-#: apps/participation/models.py:491 apps/participation/models.py:553
-#: apps/participation/models.py:591
+#: apps/participation/models.py:495 apps/participation/models.py:557
+#: apps/participation/models.py:595
msgid "passage"
msgstr "passage"
-#: apps/participation/models.py:492
+#: apps/participation/models.py:496
msgid "passages"
msgstr "passages"
-#: apps/participation/models.py:513
+#: apps/participation/models.py:517
msgid "problem"
msgstr "numéro de problème"
-#: apps/participation/models.py:520
+#: apps/participation/models.py:524
msgid "solution for the final tournament"
msgstr "solution pour la finale"
-#: apps/participation/models.py:525 apps/participation/models.py:564
+#: apps/participation/models.py:529 apps/participation/models.py:568
msgid "file"
msgstr "fichier"
-#: apps/participation/models.py:533
+#: apps/participation/models.py:537
#, python-brace-format
msgid "Solution of team {team} for problem {problem}"
msgstr "Solution de l'équipe {team} pour le problème {problem}"
-#: apps/participation/models.py:537
+#: apps/participation/models.py:541
msgid "solution"
msgstr "solution"
-#: apps/participation/models.py:538
+#: apps/participation/models.py:542
msgid "solutions"
msgstr "solutions"
-#: apps/participation/models.py:572
+#: apps/participation/models.py:576
#, python-brace-format
msgid "Synthesis for the {type} of the {passage}"
msgstr "Synthèse pour {type} du {passage}"
-#: apps/participation/models.py:575
+#: apps/participation/models.py:579
msgid "synthesis"
msgstr "note de synthèse"
-#: apps/participation/models.py:576
+#: apps/participation/models.py:580
msgid "syntheses"
msgstr "notes de synthèse"
-#: apps/participation/models.py:584
+#: apps/participation/models.py:588
msgid "jury"
msgstr "jury"
-#: apps/participation/models.py:596
+#: apps/participation/models.py:600
msgid "defender writing note"
msgstr "note d'écrit du défenseur"
-#: apps/participation/models.py:602
+#: apps/participation/models.py:606
msgid "defender oral note"
msgstr "note d'oral du défenseur"
-#: apps/participation/models.py:608
+#: apps/participation/models.py:612
msgid "opponent writing note"
msgstr "note d'écrit de l'opposant"
-#: apps/participation/models.py:614
+#: apps/participation/models.py:618
msgid "opponent oral note"
msgstr "note d'oral de l'opposant"
-#: apps/participation/models.py:620
+#: apps/participation/models.py:624
msgid "reporter writing note"
msgstr "not d'écrit du rapporteur"
-#: apps/participation/models.py:626
+#: apps/participation/models.py:630
msgid "reporter oral note"
msgstr "note d'oral du rapporteur"
-#: apps/participation/models.py:635
+#: apps/participation/models.py:639
#, python-brace-format
msgid "Notes of {jury} for {passage}"
msgstr "Notes de {jury} pour le {passage}"
-#: apps/participation/models.py:642
+#: apps/participation/models.py:646
msgid "note"
msgstr "note"
-#: apps/participation/models.py:643
+#: apps/participation/models.py:647
msgid "notes"
msgstr "notes"
@@ -504,11 +504,11 @@ msgstr "Rejoindre"
#: apps/participation/templates/participation/passage_detail.html:44
#: apps/participation/templates/participation/passage_detail.html:100
#: apps/participation/templates/participation/passage_detail.html:105
-#: apps/participation/templates/participation/pool_detail.html:52
-#: apps/participation/templates/participation/pool_detail.html:70
-#: apps/participation/templates/participation/pool_detail.html:75
-#: apps/participation/templates/participation/team_detail.html:89
-#: apps/participation/templates/participation/team_detail.html:148
+#: 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:91
+#: apps/participation/templates/participation/team_detail.html:150
#: apps/participation/templates/participation/tournament_form.html:12
#: apps/participation/templates/participation/update_team.html:12
#: apps/registration/templates/registration/payment_form.html:49
@@ -679,31 +679,35 @@ msgstr "Jurys :"
msgid "Defended solutions:"
msgstr "Solutions défendues :"
-#: apps/participation/templates/participation/pool_detail.html:38
+#: apps/participation/templates/participation/pool_detail.html:35
+msgid "BigBlueButton link:"
+msgstr "Lien BigBlueButton :"
+
+#: apps/participation/templates/participation/pool_detail.html:41
#: apps/participation/templates/participation/tournament_detail.html:82
msgid "Ranking"
msgstr "Classement"
-#: apps/participation/templates/participation/pool_detail.html:51
-#: apps/participation/templates/participation/pool_detail.html:64
+#: apps/participation/templates/participation/pool_detail.html:54
+#: apps/participation/templates/participation/pool_detail.html:67
msgid "Add passage"
msgstr "Ajouter un passage"
-#: apps/participation/templates/participation/pool_detail.html:53
-#: apps/participation/templates/participation/pool_detail.html:74
+#: apps/participation/templates/participation/pool_detail.html:56
+#: apps/participation/templates/participation/pool_detail.html:77
msgid "Update teams"
msgstr "Modifier les équipes"
-#: apps/participation/templates/participation/pool_detail.html:60
+#: apps/participation/templates/participation/pool_detail.html:63
msgid "Passages"
msgstr "Passages"
-#: apps/participation/templates/participation/pool_detail.html:65
+#: apps/participation/templates/participation/pool_detail.html:68
#: apps/participation/templates/participation/tournament_detail.html:96
msgid "Add"
msgstr "Ajouter"
-#: apps/participation/templates/participation/pool_detail.html:69
+#: apps/participation/templates/participation/pool_detail.html:72
#: apps/participation/templates/participation/pool_form.html:11
msgid "Update pool"
msgstr "Modifier la poule"
@@ -738,8 +742,8 @@ msgid "Photo authorizations:"
msgstr "Autorisations de droit à l'image :"
#: apps/participation/templates/participation/team_detail.html:58
-#: apps/participation/templates/participation/team_detail.html:69
-#: apps/participation/templates/participation/team_detail.html:81
+#: apps/participation/templates/participation/team_detail.html:70
+#: apps/participation/templates/participation/team_detail.html:83
msgid "Not uploaded yet"
msgstr "Pas encore envoyée"
@@ -747,21 +751,21 @@ msgstr "Pas encore envoyée"
msgid "Health sheets:"
msgstr "Fiches sanitaires :"
-#: apps/participation/templates/participation/team_detail.html:74
+#: apps/participation/templates/participation/team_detail.html:76
msgid "Parental authorizations:"
msgstr "Autorisations parentales :"
-#: apps/participation/templates/participation/team_detail.html:91
-#: apps/participation/templates/participation/team_detail.html:153
+#: apps/participation/templates/participation/team_detail.html:93
+#: apps/participation/templates/participation/team_detail.html:155
#: apps/participation/templates/participation/team_leave.html:11
msgid "Leave"
msgstr "Quitter"
-#: apps/participation/templates/participation/team_detail.html:101
+#: apps/participation/templates/participation/team_detail.html:103
msgid "Access to team participation"
msgstr "Accéder à la participation de l'équipe"
-#: apps/participation/templates/participation/team_detail.html:108
+#: apps/participation/templates/participation/team_detail.html:110
msgid ""
"Your team has at least 4 members and a coach and all authorizations were "
"given: the team can be validated."
@@ -769,11 +773,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:113
+#: apps/participation/templates/participation/team_detail.html:115
msgid "Submit my team to validation"
msgstr "Soumettre mon équipe à validation"
-#: apps/participation/templates/participation/team_detail.html:119
+#: apps/participation/templates/participation/team_detail.html:121
msgid ""
"Your team must be composed of 4 members and a coach and each member must "
"upload their authorizations and confirm its email address."
@@ -781,15 +785,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:124
+#: apps/participation/templates/participation/team_detail.html:126
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:130
+#: apps/participation/templates/participation/team_detail.html:132
msgid "Your validation is pending."
msgstr "Votre validation est en attente."
-#: apps/participation/templates/participation/team_detail.html:134
+#: apps/participation/templates/participation/team_detail.html:136
msgid ""
"The team requested to be validated. You may now control the authorizations "
"and confirm that they can participate."
@@ -797,19 +801,19 @@ 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:140
+#: apps/participation/templates/participation/team_detail.html:142
msgid "Validate"
msgstr "Valider"
-#: apps/participation/templates/participation/team_detail.html:141
+#: apps/participation/templates/participation/team_detail.html:143
msgid "Invalidate"
msgstr "Invalider"
-#: apps/participation/templates/participation/team_detail.html:147
+#: apps/participation/templates/participation/team_detail.html:149
msgid "Update team"
msgstr "Modifier l'équipe"
-#: apps/participation/templates/participation/team_detail.html:152
+#: apps/participation/templates/participation/team_detail.html:154
#: apps/participation/views.py:360
msgid "Leave team"
msgstr "Quitter l'équipe"
@@ -1081,46 +1085,46 @@ msgstr "numéro de téléphone"
msgid "photo authorization"
msgstr "autorisation de droit à l'image"
-#: apps/registration/models.py:150
-msgid "health sheet"
-msgstr "fiche sanitaire"
-
-#: apps/registration/models.py:176
+#: apps/registration/models.py:169
msgid "12th grade"
msgstr "Terminale"
-#: apps/registration/models.py:177
+#: apps/registration/models.py:170
msgid "11th grade"
msgstr "Première"
-#: apps/registration/models.py:178
+#: apps/registration/models.py:171
msgid "10th grade or lower"
msgstr "Seconde ou inférieur"
-#: apps/registration/models.py:180
+#: apps/registration/models.py:173
msgid "student class"
msgstr "classe"
-#: apps/registration/models.py:185
+#: apps/registration/models.py:178
msgid "school"
msgstr "école"
-#: apps/registration/models.py:190
+#: apps/registration/models.py:183
msgid "responsible name"
msgstr "nom du responsable légal"
-#: apps/registration/models.py:195
+#: apps/registration/models.py:188
msgid "responsible phone number"
msgstr "numéro de téléphone du responsable légal"
-#: apps/registration/models.py:200
+#: apps/registration/models.py:193
msgid "responsible email address"
msgstr "adresse e-mail du responsable légal"
-#: apps/registration/models.py:205
+#: apps/registration/models.py:198
msgid "parental authorization"
msgstr "autorisation parentale"
+#: apps/registration/models.py:205
+msgid "health sheet"
+msgstr "fiche sanitaire"
+
#: apps/registration/models.py:213
msgid "student"
msgstr "étudiant"
@@ -1214,7 +1218,7 @@ msgstr "nom de famille"
#: apps/registration/templates/registration/add_organizer.html:12
#: apps/registration/templates/registration/add_organizer.html:19
#: apps/registration/templates/registration/user_list.html:8
-#: apps/registration/views.py:86
+#: apps/registration/views.py:88
msgid "Add organizer"
msgstr "Ajouter un organisateur"
@@ -1418,7 +1422,7 @@ msgstr ""
#: apps/registration/templates/registration/signup.html:5
#: apps/registration/templates/registration/signup.html:12
#: apps/registration/templates/registration/signup.html:19
-#: apps/registration/views.py:42
+#: apps/registration/views.py:44
msgid "Sign up"
msgstr "Inscription"
@@ -1435,7 +1439,7 @@ msgstr "Modèle de fiche sanitaire :"
#: 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:54
-#: apps/registration/templates/registration/user_detail.html:64
+#: apps/registration/templates/registration/user_detail.html:67
#: apps/registration/templates/registration/user_detail.html:77
msgid "Download"
msgstr "Télécharger"
@@ -1497,12 +1501,12 @@ msgid "Photo authorization:"
msgstr "Autorisation de droit à l'image"
#: apps/registration/templates/registration/user_detail.html:57
-#: apps/registration/templates/registration/user_detail.html:67
+#: apps/registration/templates/registration/user_detail.html:70
#: apps/registration/templates/registration/user_detail.html:80
msgid "Replace"
msgstr "Remplacer"
-#: apps/registration/templates/registration/user_detail.html:61
+#: apps/registration/templates/registration/user_detail.html:64
msgid "Health sheet:"
msgstr "Fiche sanitaire :"
@@ -1573,71 +1577,71 @@ msgid "Update user"
msgstr "Modifier l'utilisateur"
#: apps/registration/templates/registration/user_detail.html:161
-#: apps/registration/views.py:313
+#: apps/registration/views.py:315
msgid "Upload photo authorization"
msgstr "Téléverser l'autorisation de droit à l'image"
#: apps/registration/templates/registration/user_detail.html:166
-#: apps/registration/views.py:339
+#: apps/registration/views.py:341
msgid "Upload health sheet"
msgstr "Téléverser la fiche sanitaire"
#: apps/registration/templates/registration/user_detail.html:171
#: apps/registration/templates/registration/user_detail.html:176
-#: apps/registration/views.py:365
+#: apps/registration/views.py:367
msgid "Upload parental authorization"
msgstr "Téléverser l'autorisation parentale"
-#: apps/registration/views.py:125
+#: apps/registration/views.py:127
msgid "New TFJM² organizer account"
msgstr "Nouveau compte organisateur pour le TFJM²"
-#: apps/registration/views.py:147
+#: apps/registration/views.py:149
msgid "Email validation"
msgstr "Validation de l'adresse mail"
-#: apps/registration/views.py:149
+#: apps/registration/views.py:151
msgid "Validate email"
msgstr "Valider l'adresse mail"
-#: apps/registration/views.py:188
+#: apps/registration/views.py:190
msgid "Email validation unsuccessful"
msgstr "Échec de la validation de l'adresse mail"
-#: apps/registration/views.py:199
+#: apps/registration/views.py:201
msgid "Email validation email sent"
msgstr "Mail de confirmation de l'adresse mail envoyé"
-#: apps/registration/views.py:207
+#: apps/registration/views.py:209
msgid "Resend email validation link"
msgstr "Renvoyé le lien de validation de l'adresse mail"
-#: apps/registration/views.py:247
+#: apps/registration/views.py:249
#, python-brace-format
msgid "Detail of user {user}"
msgstr "Détails de l'utilisateur {user}"
-#: apps/registration/views.py:277
+#: apps/registration/views.py:279
#, python-brace-format
msgid "Update user {user}"
msgstr "Mise à jour de l'utilisateur {user}"
-#: apps/registration/views.py:428
+#: apps/registration/views.py:476
#, python-brace-format
msgid "Photo authorization of {student}.{ext}"
msgstr "Autorisation de droit à l'image de {student}.{ext}"
-#: apps/registration/views.py:451
+#: apps/registration/views.py:499
#, python-brace-format
msgid "Health sheet of {student}.{ext}"
msgstr "Fiche sanitaire de {student}.{ext}"
-#: apps/registration/views.py:474
+#: apps/registration/views.py:522
#, python-brace-format
msgid "Parental authorization of {student}.{ext}"
msgstr "Autorisation parentale de {student}.{ext}"
-#: apps/registration/views.py:496
+#: apps/registration/views.py:544
#, python-brace-format
msgid "Scholarship attestation of {user}.{ext}"
msgstr "Notification de bourse de {user}.{ext}"