Display the BBB link of a pool

This commit is contained in:
Yohann D'ANELLO 2021-01-21 22:32:43 +01:00
parent fd4280426b
commit 9e559db4b4
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
3 changed files with 113 additions and 102 deletions

View File

@ -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)

View File

@ -31,6 +31,9 @@
<a href="{{ passage.defended_solution.file.url }}" data-turbolinks="false">{{ passage.defended_solution }}{% if not forloop.last %}, {% endif %}</a>
{% endfor %}
</dd>
<dt class="col-sm-3">{% trans "BigBlueButton link:" %}</dt>
<dd class="col-sm-9"><a href="{{ pool.bbb_url }}">{{ pool.bbb_url }}</a></dd>
</dl>
<div class="card bg-light shadow">

View File

@ -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 <yohann.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\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}"