1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-21 03:58:26 +02:00

Add survey feature

This commit is contained in:
Emmy D'Anello
2025-03-19 23:18:45 +01:00
parent ca0601fb24
commit 702c8d8c9e
24 changed files with 744 additions and 100 deletions

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TFJM\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-09 11:04+0100\n"
"POT-Creation-Date: 2025-03-19 23:07+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Emmy D'Anello <emmy.danello@animath.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -114,6 +114,7 @@ msgstr ""
#: registration/models.py:158 registration/models.py:754
#: registration/tables.py:39
#: registration/templates/registration/payment_form.html:52
#: survey/templates/survey/survey_detail.html:60
msgid "team"
msgstr "équipe"
@ -217,7 +218,7 @@ msgstr ""
msgid "Toggle fullscreen mode"
msgstr "Inverse le mode plein écran"
#: chat/templates/chat/content.html:76 tfjm/templates/navbar.html:126
#: chat/templates/chat/content.html:76 tfjm/templates/navbar.html:129
msgid "Log out"
msgstr "Déconnexion"
@ -251,7 +252,7 @@ msgstr "Chat"
#: chat/templates/chat/login.html:10 chat/templates/chat/login.html:36
#: registration/templates/registration/password_reset_complete.html:10
#: tfjm/templates/base.html:89 tfjm/templates/base.html:90
#: tfjm/templates/navbar.html:107
#: tfjm/templates/navbar.html:110
#: tfjm/templates/registration/includes/login.html:22
#: tfjm/templates/registration/login.html:7
#: tfjm/templates/registration/login.html:8
@ -713,7 +714,7 @@ msgstr ""
#: draw/models.py:496 draw/models.py:519 participation/models.py:1258
#: participation/models.py:1695 participation/models.py:1933
#: participation/views.py:1495 participation/views.py:1760
#: participation/views.py:1501 participation/views.py:1766
#, python-brace-format
msgid "Problem #{problem}"
msgstr "Problème n°{problem}"
@ -911,8 +912,8 @@ msgstr "Êtes-vous sûr·e de vouloir annuler le tirage au sort ?"
msgid "Close"
msgstr "Fermer"
#: draw/views.py:31 participation/views.py:163 participation/views.py:509
#: participation/views.py:540
#: draw/views.py:31 participation/views.py:163 participation/views.py:512
#: participation/views.py:543
msgid "You are not in a team."
msgstr "Vous n'êtes pas dans une équipe."
@ -1029,7 +1030,7 @@ msgstr "Ce trigramme est déjà utilisé."
msgid "No team was found with this access code."
msgstr "Aucune équipe n'a été trouvée avec ce code d'accès."
#: participation/forms.py:59 participation/views.py:511
#: participation/forms.py:59 participation/views.py:514
msgid "The team is already validated or the validation is pending."
msgstr "La validation de l'équipe est déjà faite ou en cours."
@ -1382,7 +1383,7 @@ msgstr "finale"
msgid "Google Sheet ID"
msgstr "ID de la feuille Google Sheets"
#: participation/models.py:467 participation/views.py:1814
#: participation/models.py:467 participation/views.py:1820
msgid "Notation sheet"
msgstr "Feuille de notation"
@ -1392,7 +1393,8 @@ msgid "Final ranking"
msgstr "Classement final"
#: participation/models.py:487 participation/models.py:559
#: participation/models.py:1333 participation/views.py:1734
#: participation/models.py:1333 participation/views.py:1740
#: survey/templates/survey/survey_detail.html:58
msgid "Team"
msgstr "Équipe"
@ -1425,14 +1427,14 @@ msgid "Tweaks day 3"
msgstr "Ajustements 3"
#: participation/models.py:491 participation/models.py:1333
#: participation/views.py:1741
#: participation/views.py:1747
msgid "Total"
msgstr "Total"
#: participation/models.py:491 participation/models.py:559
#: participation/models.py:1333
#: participation/templates/participation/tournament_harmonize.html:14
#: participation/views.py:1744
#: participation/views.py:1750
msgid "Rank"
msgstr "Rang"
@ -1443,7 +1445,7 @@ msgstr "Rang"
#: participation/models.py:1360 participation/models.py:1367
#: participation/models.py:1371 participation/models.py:1616
#: participation/models.py:1638 participation/models.py:2102
#: participation/views.py:1815
#: participation/views.py:1821
msgid "Pool"
msgstr "Poule"
@ -1707,59 +1709,59 @@ msgid "The president of the jury must be part of the jury."
msgstr "Læ président⋅e du jury doit faire partie du jury."
#: participation/models.py:1259 participation/models.py:1333
#: participation/views.py:1489 participation/views.py:1738
#: participation/views.py:1495 participation/views.py:1744
msgid "Problem"
msgstr "Problème"
#: participation/models.py:1260 participation/views.py:1510
#: participation/models.py:1260 participation/views.py:1516
msgid "Reporter"
msgstr "Défenseur⋅se"
#: participation/models.py:1261 participation/views.py:1516
#: participation/models.py:1261 participation/views.py:1522
msgid "Opponent"
msgstr "Opposant⋅e"
#: participation/models.py:1262 participation/views.py:1523
#: participation/models.py:1262 participation/views.py:1529
msgid "Reviewer"
msgstr "Rapporteur⋅rice"
#: participation/models.py:1263 participation/views.py:1530
#: participation/models.py:1263 participation/views.py:1536
msgid "Observer"
msgstr "Observateur⋅rice"
#: participation/models.py:1264 participation/views.py:1504
#: participation/models.py:1264 participation/views.py:1510
msgid "Role"
msgstr "Rôle"
#: participation/models.py:1265 participation/models.py:1267
#: participation/models.py:1268 participation/views.py:1546
#: participation/views.py:1554 participation/views.py:1562
#: participation/views.py:1572
#: participation/models.py:1268 participation/views.py:1552
#: participation/views.py:1560 participation/views.py:1568
#: participation/views.py:1578
msgid "Writing"
msgstr "Écrit"
#: participation/models.py:1266 participation/models.py:1267
#: participation/models.py:1268 participation/views.py:1550
#: participation/views.py:1558 participation/views.py:1567
#: participation/views.py:1576
#: participation/models.py:1268 participation/views.py:1556
#: participation/views.py:1564 participation/views.py:1573
#: participation/views.py:1582
msgid "Oral"
msgstr "Oral"
#: participation/models.py:1269 participation/views.py:1538
#: participation/views.py:1539
#: participation/models.py:1269 participation/views.py:1544
#: participation/views.py:1545
msgid "Juree"
msgstr "Juré⋅e"
#: participation/models.py:1292 participation/models.py:1618
#: participation/models.py:1640 participation/views.py:1608
#: participation/models.py:1640 participation/views.py:1614
msgid "Average"
msgstr "Moyenne"
#: participation/models.py:1298 participation/views.py:1627
#: participation/models.py:1298 participation/views.py:1633
msgid "Coefficient"
msgstr "Coefficien"
#: participation/models.py:1299 participation/views.py:1670
#: participation/models.py:1299 participation/views.py:1676
msgid "Subtotal"
msgstr "Sous-total"
@ -1972,12 +1974,15 @@ msgstr "Pas d'équipe définie"
#: registration/templates/registration/payment_form.html:210
#: registration/templates/registration/update_user.html:16
#: registration/templates/registration/user_detail.html:220
#: survey/templates/survey/survey_detail.html:40
#: survey/templates/survey/survey_detail.html:73
#: survey/templates/survey/survey_form.html:12
msgid "Update"
msgstr "Modifier"
#: participation/templates/participation/create_team.html:11
#: participation/templates/participation/tournament_form.html:14
#: tfjm/templates/base.html:85
#: survey/templates/survey/survey_form.html:14 tfjm/templates/base.html:85
msgid "Create"
msgstr "Créer"
@ -2305,6 +2310,7 @@ msgid "Back to pool detail"
msgstr "Retour aux détails de la poule"
#: participation/templates/participation/team_detail.html:13
#: survey/templates/survey/survey_detail.html:16
msgid "Name:"
msgstr "Nom :"
@ -2465,7 +2471,7 @@ msgid "Invalidate"
msgstr "Invalider"
#: participation/templates/participation/team_detail.html:244
#: participation/views.py:341
#: participation/views.py:344
msgid "Upload motivation letter"
msgstr "Envoyer la lettre de motivation"
@ -2474,7 +2480,7 @@ msgid "Update team"
msgstr "Modifier l'équipe"
#: participation/templates/participation/team_detail.html:255
#: participation/views.py:503
#: participation/views.py:506
msgid "Leave team"
msgstr "Quitter l'équipe"
@ -2736,7 +2742,7 @@ msgstr "Vous êtes déjà dans une équipe."
msgid "Join team"
msgstr "Rejoindre une équipe"
#: participation/views.py:164 participation/views.py:541
#: participation/views.py:164 participation/views.py:544
msgid "You don't participate, so you don't have any team."
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
@ -2764,189 +2770,189 @@ msgstr ""
"d'adresse e-mail, soit une autorisation, soit des personnes, soit la lettre "
"de motivation, soit le tournoi n'a pas été choisi."
#: participation/views.py:235
#: participation/views.py:236
msgid "Team validation"
msgstr "Validation d'équipe"
#: participation/views.py:247
#: participation/views.py:248
msgid "You are not an organizer of the tournament."
msgstr "Vous n'êtes pas un⋅e organisateur⋅rice du tournoi."
#: participation/views.py:250
#: participation/views.py:251
msgid "This team has no pending validation."
msgstr "L'équipe n'a pas de validation en attente."
#: participation/views.py:270
#: participation/views.py:272
msgid "Team validated"
msgstr "Équipe validée"
#: participation/views.py:279
#: participation/views.py:282
msgid "Team not validated"
msgstr "Équipe non validée"
#: participation/views.py:282
#: participation/views.py:285
msgid "You must specify if you validate the registration or not."
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
#: participation/views.py:318
#: participation/views.py:321
#, python-brace-format
msgid "Update team {trigram}"
msgstr "Mise à jour de l'équipe {trigram}"
#: participation/views.py:380 participation/views.py:488
#: participation/views.py:383 participation/views.py:491
#, python-brace-format
msgid "Motivation letter of {team}.{ext}"
msgstr "Lettre de motivation de {team}.{ext}"
#: participation/views.py:413
#: participation/views.py:416
#, python-brace-format
msgid "Authorizations of team {trigram}.zip"
msgstr "Autorisations de l'équipe {trigram}.zip"
#: participation/views.py:417
#: participation/views.py:420
#, python-brace-format
msgid "Authorizations of {tournament}.zip"
msgstr "Autorisations du tournoi {tournament}.zip"
#: participation/views.py:436
#: participation/views.py:439
#, python-brace-format
msgid "Photo authorization of {participant}.{ext}"
msgstr "Autorisation de droit à l'image de {participant}.{ext}"
#: participation/views.py:445
#: participation/views.py:448
#, python-brace-format
msgid "Parental authorization of {participant}.{ext}"
msgstr "Autorisation parentale de {participant}.{ext}"
#: participation/views.py:453
#: participation/views.py:456
#, python-brace-format
msgid "Health sheet of {participant}.{ext}"
msgstr "Fiche sanitaire de {participant}.{ext}"
#: participation/views.py:461
#: participation/views.py:464
#, python-brace-format
msgid "Vaccine sheet of {participant}.{ext}"
msgstr "Carnet de vaccination de {participant}.{ext}"
#: participation/views.py:472
#: participation/views.py:475
#, python-brace-format
msgid "Photo authorization of {participant} (final).{ext}"
msgstr "Autorisation de droit à l'image de {participant} (finale).{ext}"
#: participation/views.py:481
#: participation/views.py:484
#, python-brace-format
msgid "Parental authorization of {participant} (final).{ext}"
msgstr "Autorisation parentale de {participant} (finale).{ext}"
#: participation/views.py:555
#: participation/views.py:558
msgid "The team is not validated yet."
msgstr "L'équipe n'est pas encore validée."
#: participation/views.py:569
#: participation/views.py:572
#, python-brace-format
msgid "Participation of team {trigram}"
msgstr "Participation de l'équipe {trigram}"
#: participation/views.py:658
#: participation/views.py:661
#, python-brace-format
msgid "Payments of {tournament}"
msgstr "Paiements de {tournament}"
#: participation/views.py:758
#: participation/views.py:761
msgid "Notes published!"
msgstr "Notes publiées !"
#: participation/views.py:760
#: participation/views.py:763
msgid "Notes hidden!"
msgstr "Notes dissimulées !"
#: participation/views.py:791
#: participation/views.py:794
#, python-brace-format
msgid "Harmonize notes of {tournament} - Day {round}"
msgstr "Harmoniser les notes de {tournament} - Jour {round}"
#: participation/views.py:905
#: participation/views.py:908
msgid "You can't upload a solution after the deadline."
msgstr "Vous ne pouvez pas envoyer de solution après la date limite."
#: participation/views.py:1025
#: participation/views.py:1028
#, python-brace-format
msgid "Solutions of team {trigram}.zip"
msgstr "Solutions de l'équipe {trigram}.zip"
#: participation/views.py:1026
#: participation/views.py:1029
#, python-brace-format
msgid "Written reviews of team {trigram}.zip"
msgstr "Notes de synthèse de l'équipe {trigram}.zip"
#: participation/views.py:1043 participation/views.py:1059
#: participation/views.py:1046 participation/views.py:1062
#, python-brace-format
msgid "Solutions of {tournament}.zip"
msgstr "Solutions de {tournament}.zip"
#: participation/views.py:1044 participation/views.py:1060
#: participation/views.py:1047 participation/views.py:1063
#, python-brace-format
msgid "Written reviews of {tournament}.zip"
msgstr "Notes de synthèse de {tournament}.zip"
#: participation/views.py:1069
#: participation/views.py:1072
#, python-brace-format
msgid "Solutions for pool {pool} of tournament {tournament}.zip"
msgstr "Solutions pour la poule {pool} du tournoi {tournament}.zip"
#: participation/views.py:1070
#: participation/views.py:1073
#, python-brace-format
msgid "Written reviews for pool {pool} of tournament {tournament}.zip"
msgstr "Notes de synthèses pour la poule {pool} du tournoi {tournament}.zip"
#: participation/views.py:1112
#: participation/views.py:1115
#, python-brace-format
msgid "Jury of pool {pool} for {tournament} with teams {teams}"
msgstr "Jury de la poule {pool} pour {tournament} avec les équipes {teams}"
#: participation/views.py:1128
#: participation/views.py:1131
#, python-brace-format
msgid "The jury {name} is already in the pool!"
msgstr "{name} est déjà dans la poule !"
#: participation/views.py:1148
#: participation/views.py:1151
msgid "New jury account"
msgstr "Nouveau compte de juré⋅e"
#: participation/views.py:1169
#: participation/views.py:1175
#, python-brace-format
msgid "The jury {name} has been successfully added!"
msgstr "{name} a été ajouté⋅e avec succès en tant que juré⋅e !"
#: participation/views.py:1205
#: participation/views.py:1211
#, python-brace-format
msgid "The jury {name} has been successfully removed!"
msgstr "{name} a été retiré⋅e avec succès du jury !"
#: participation/views.py:1231
#: participation/views.py:1237
#, python-brace-format
msgid "The jury {name} has been successfully promoted president!"
msgstr "{name} a été nommé⋅e président⋅e du jury !"
#: participation/views.py:1259
#: participation/views.py:1265
msgid "The following user is not registered as a jury:"
msgstr "L'utilisateur⋅rice suivant n'est pas inscrit⋅e en tant que juré⋅e :"
#: participation/views.py:1275
#: participation/views.py:1281
msgid "Notes were successfully uploaded."
msgstr "Les notes ont bien été envoyées."
#: participation/views.py:1907
#: participation/views.py:1912
#, python-brace-format
msgid "Notation sheets of pool {pool} of {tournament}.zip"
msgstr "Feuilles de notations pour la poule {pool} du tournoi {tournament}.zip"
#: participation/views.py:1912
#: participation/views.py:1917
#, python-brace-format
msgid "Notation sheets of {tournament}.zip"
msgstr "Feuilles de notation de {tournament}.zip"
#: participation/views.py:2079
#: participation/views.py:2091
msgid "You can't upload a written review after the deadline."
msgstr "Vous ne pouvez pas envoyer de note de synthèse après la date limite."
@ -2981,7 +2987,7 @@ msgstr "Marquer comme invalide"
msgid "role"
msgstr "rôle"
#: registration/forms.py:25
#: registration/forms.py:25 survey/templates/survey/survey_detail.html:50
msgid "participant"
msgstr "participant⋅e"
@ -4200,22 +4206,22 @@ msgid "Impersonate"
msgstr "Impersonifier"
#: registration/templates/registration/user_detail.html:229
#: registration/views.py:333
#: registration/views.py:334
msgid "Upload photo authorization"
msgstr "Téléverser l'autorisation de droit à l'image"
#: registration/templates/registration/user_detail.html:236
#: registration/views.py:367
#: registration/views.py:368
msgid "Upload health sheet"
msgstr "Téléverser la fiche sanitaire"
#: registration/templates/registration/user_detail.html:243
#: registration/views.py:388
#: registration/views.py:389
msgid "Upload vaccine sheet"
msgstr "Téléverser le carnet de vaccination"
#: registration/templates/registration/user_detail.html:249
#: registration/views.py:408
#: registration/views.py:409
msgid "Upload parental authorization"
msgstr "Téléverser l'autorisation parentale"
@ -4242,36 +4248,36 @@ msgstr ""
"Les inscriptions pour cette année sont closes depuis le {closing_date:%d/%m/"
"%Y %H:%M}."
#: registration/views.py:140
#: registration/views.py:141
msgid "New organizer account"
msgstr "Nouveau compte organisateur⋅rice"
#: registration/views.py:166
#: registration/views.py:167
msgid "Email validation"
msgstr "Validation de l'adresse mail"
#: registration/views.py:168
#: registration/views.py:169
msgid "Validate email"
msgstr "Valider l'adresse mail"
#: registration/views.py:207
#: registration/views.py:208
msgid "Email validation unsuccessful"
msgstr "Échec de la validation de l'adresse mail"
#: registration/views.py:218
#: registration/views.py:219
msgid "Email validation email sent"
msgstr "Mail de confirmation de l'adresse mail envoyé"
#: registration/views.py:226
#: registration/views.py:227
msgid "Resend email validation link"
msgstr "Renvoyé le lien de validation de l'adresse mail"
#: registration/views.py:269
#: registration/views.py:270
#, python-brace-format
msgid "Detail of user {user}"
msgstr "Détails de l'utilisateur⋅rice {user}"
#: registration/views.py:294
#: registration/views.py:295
#, python-brace-format
msgid "Update user {user}"
msgstr "Mise à jour de l'utilisateur⋅rice {user}"
@ -4358,6 +4364,122 @@ msgstr "Autorisation parentale de {student}.{ext}"
msgid "Payment receipt of {registrations}.{ext}"
msgstr "Justificatif de paiement de {registrations}.{ext}"
#: survey/models.py:21 survey/tables.py:14
msgid "survey identifier"
msgstr "identifiant du sondage"
#: survey/models.py:22
msgid "The numeric identifier of the Limesurvey."
msgstr "L'identifiant numérique du Limesurvey."
#: survey/models.py:27
msgid "display name"
msgstr "nom affiché"
#: survey/models.py:32
msgid "invite whole team"
msgstr "inviter toute l'équipe"
#: survey/models.py:33
msgid ""
"When this field is checked, teams will get only one survey invitation "
"instead of one per person."
msgstr ""
"Lorsque ce champ est coché, les équipes n'auront qu'une seule invitation au "
"sondage au lieu de une par personne."
#: survey/models.py:38
msgid "invite coaches"
msgstr "inviter les encadrant⋅es"
#: survey/models.py:39
msgid ""
"When this field is checked, coaches will also be invited in the survey. No "
"effect when the whole team is invited."
msgstr ""
"Lorsque ce champ est coché, les encadrant⋅es seront aussi invité⋅es au "
"sondage. Aucun effet lorsque toute l'équipe est invité."
#: survey/models.py:48
msgid "tournament restriction"
msgstr "restriction de tournoi"
#: survey/models.py:49
msgid ""
"When this field is filled, the survey participants will be restricted to "
"this tournament members."
msgstr ""
"Lorsque ce champ est rempli, les participant⋅es au sondage seront "
"restreint⋅es aux membres de ce tournoi."
#: survey/models.py:55
msgid "participants that completed the survey"
msgstr "participant⋅es ayant complété le sondage"
#: survey/models.py:61
msgid "teams that completed the survey"
msgstr "équipes ayant complété le sondage"
#: survey/models.py:134 survey/templates/survey/survey_detail.html:10
msgid "survey"
msgstr "sondage"
#: survey/models.py:135 tfjm/templates/navbar.html:78
msgid "surveys"
msgstr "sondages"
#: survey/tables.py:18 survey/templates/survey/survey_detail.html:51
msgid "completed"
msgstr "complété"
#: survey/templates/survey/survey_detail.html:19
msgid "One answer per team:"
msgstr "Une réponse par équipe :"
#: survey/templates/survey/survey_detail.html:23
msgid "Coaches can answer the survey:"
msgstr "Les encadrant⋅es peuvent répondre au sondage :"
#: survey/templates/survey/survey_detail.html:28
msgid "Tournament restriction:"
msgstr "Restriction de tournoi :"
#: survey/templates/survey/survey_detail.html:32
msgid "Completion rate:"
msgstr "Taux de complétion :"
#: survey/templates/survey/survey_detail.html:41
msgid "Send invites"
msgstr "Envoyer les invitations"
#: survey/templates/survey/survey_detail.html:63
msgid "Yes"
msgstr "Oui"
#: survey/templates/survey/survey_detail.html:65
msgid "No"
msgstr "Non"
#: survey/templates/survey/survey_detail.html:72
msgid "Update survey"
msgstr "Modifier le sondage"
#: survey/templates/survey/survey_list.html:8
msgid "Add survey"
msgstr "Ajouter un sondage"
#: survey/views.py:38
msgid "Invites sent!"
msgstr "Invitations envoyées !"
#: survey/views.py:40
msgid "All invites were already sent."
msgstr "Toutes les invitations étaient déjà envoyés."
#: survey/views.py:50
msgid "Completion data refreshed!"
msgstr "Données de complétion actualisées !"
#: tfjm/permissions.py:9
msgid "Everyone, including anonymous users"
msgstr "Tout le monde, incluant les utilisateur⋅rices anonymes"
@ -4402,11 +4524,11 @@ msgstr "Privé, réservé aux utilisateur⋅rices explicitement autorisé⋅es"
msgid "Admin users"
msgstr "Administrateur⋅rices"
#: tfjm/settings.py:174
#: tfjm/settings.py:175
msgid "English"
msgstr "Anglais"
#: tfjm/settings.py:175
#: tfjm/settings.py:176
msgid "French"
msgstr "Français"
@ -4674,23 +4796,23 @@ msgstr "Mon équipe"
msgid "My participation"
msgstr "Ma participation"
#: tfjm/templates/navbar.html:78
#: tfjm/templates/navbar.html:81
msgid "Administration"
msgstr "Administration"
#: tfjm/templates/navbar.html:86
#: tfjm/templates/navbar.html:89
msgid "Search…"
msgstr "Chercher…"
#: tfjm/templates/navbar.html:95
#: tfjm/templates/navbar.html:98
msgid "Return to admin view"
msgstr "Retourner à l'interface administrateur⋅rice"
#: tfjm/templates/navbar.html:102
#: tfjm/templates/navbar.html:105
msgid "Register"
msgstr "S'inscrire"
#: tfjm/templates/navbar.html:119
#: tfjm/templates/navbar.html:122
msgid "My account"
msgstr "Mon compte"