mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2024-12-25 06:22:22 +00:00
Send a mail to people in a team
This commit is contained in:
parent
03063599a5
commit
6b698c95cc
@ -165,6 +165,7 @@ class TeamDetailView(LoginRequiredMixin, DetailView):
|
|||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
|
|
||||||
context["title"] = _("Information about team")
|
context["title"] = _("Information about team")
|
||||||
|
context["team_users_emails"] = [user.email for user in self.object.users]
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: TFJM2\n"
|
"Project-Id-Version: TFJM2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-06 00:01+0200\n"
|
"POT-Creation-Date: 2020-05-06 00:19+0200\n"
|
||||||
"PO-Revision-Date: 2020-04-29 02:30+0000\n"
|
"PO-Revision-Date: 2020-04-29 02:30+0000\n"
|
||||||
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
||||||
"Language-Team: fr <LL@li.org>\n"
|
"Language-Team: fr <LL@li.org>\n"
|
||||||
@ -324,7 +324,8 @@ msgid "Organizers"
|
|||||||
msgstr "Organisateurs"
|
msgstr "Organisateurs"
|
||||||
|
|
||||||
#: apps/tournament/apps.py:7 apps/tournament/models.py:110
|
#: apps/tournament/apps.py:7 apps/tournament/models.py:110
|
||||||
#: apps/tournament/models.py:147 templates/tournament/pool_detail.html:21
|
#: apps/tournament/models.py:147 apps/tournament/tables.py:57
|
||||||
|
#: apps/tournament/tables.py:91 templates/tournament/pool_detail.html:21
|
||||||
#: templates/tournament/team_detail.html:21
|
#: templates/tournament/team_detail.html:21
|
||||||
msgid "tournament"
|
msgid "tournament"
|
||||||
msgstr "tournoi"
|
msgstr "tournoi"
|
||||||
@ -563,17 +564,17 @@ msgstr "dates"
|
|||||||
msgid "From {start:%b %d %Y} to {end:%b %d %Y}"
|
msgid "From {start:%b %d %Y} to {end:%b %d %Y}"
|
||||||
msgstr "Du {start: %d %b %Y} au {end:%d %b %Y}"
|
msgstr "Du {start: %d %b %Y} au {end:%d %b %Y}"
|
||||||
|
|
||||||
#: apps/tournament/tables.py:70 apps/tournament/tables.py:103
|
#: apps/tournament/tables.py:71 apps/tournament/tables.py:105
|
||||||
#: templates/tournament/team_detail.html:115
|
#: templates/tournament/team_detail.html:121
|
||||||
#: templates/tournament/team_detail.html:123
|
#: templates/tournament/team_detail.html:129
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr "Télécharger"
|
msgstr "Télécharger"
|
||||||
|
|
||||||
#: apps/tournament/tables.py:114
|
#: apps/tournament/tables.py:116
|
||||||
msgid "Problems"
|
msgid "Problems"
|
||||||
msgstr "Problèmes"
|
msgstr "Problèmes"
|
||||||
|
|
||||||
#: apps/tournament/tables.py:116
|
#: apps/tournament/tables.py:118
|
||||||
msgid "Tournament"
|
msgid "Tournament"
|
||||||
msgstr "Tournoi"
|
msgstr "Tournoi"
|
||||||
|
|
||||||
@ -594,7 +595,7 @@ msgstr "Tournoi de {name}"
|
|||||||
msgid "Update tournament"
|
msgid "Update tournament"
|
||||||
msgstr "Modifier le tournoi"
|
msgstr "Modifier le tournoi"
|
||||||
|
|
||||||
#: apps/tournament/views.py:134 apps/tournament/views.py:222
|
#: apps/tournament/views.py:134 apps/tournament/views.py:223
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Solutions for team {team}.zip"
|
msgid "Solutions for team {team}.zip"
|
||||||
msgstr "Solutions pour l'équipe {team}.zip"
|
msgstr "Solutions pour l'équipe {team}.zip"
|
||||||
@ -603,45 +604,45 @@ msgstr "Solutions pour l'équipe {team}.zip"
|
|||||||
msgid "Information about team"
|
msgid "Information about team"
|
||||||
msgstr "Informations sur l'équipe"
|
msgstr "Informations sur l'équipe"
|
||||||
|
|
||||||
#: apps/tournament/views.py:175
|
#: apps/tournament/views.py:176
|
||||||
msgid "Update team"
|
msgid "Update team"
|
||||||
msgstr "Modifier l'équipe"
|
msgstr "Modifier l'équipe"
|
||||||
|
|
||||||
#: apps/tournament/views.py:187
|
#: apps/tournament/views.py:188
|
||||||
msgid "Add organizer"
|
msgid "Add organizer"
|
||||||
msgstr "Ajouter un organisateur"
|
msgstr "Ajouter un organisateur"
|
||||||
|
|
||||||
#: apps/tournament/views.py:206 templates/base.html:108 templates/base.html:126
|
#: apps/tournament/views.py:207 templates/base.html:108 templates/base.html:126
|
||||||
#: templates/tournament/pool_detail.html:31
|
#: templates/tournament/pool_detail.html:31
|
||||||
msgid "Solutions"
|
msgid "Solutions"
|
||||||
msgstr "Solutions"
|
msgstr "Solutions"
|
||||||
|
|
||||||
#: apps/tournament/views.py:247
|
#: apps/tournament/views.py:248
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your solution anymore. Deadline: {date:%m-%d-%Y %H:%M}."
|
"You can't publish your solution anymore. Deadline: {date:%m-%d-%Y %H:%M}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous ne pouvez plus publier vos solutions. Deadline : {date:%d/%m/%Y %H:%M}."
|
"Vous ne pouvez plus publier vos solutions. Deadline : {date:%d/%m/%Y %H:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:271
|
#: apps/tournament/views.py:272
|
||||||
msgid "All solutions"
|
msgid "All solutions"
|
||||||
msgstr "Toutes les solutions"
|
msgstr "Toutes les solutions"
|
||||||
|
|
||||||
#: apps/tournament/views.py:290
|
#: apps/tournament/views.py:291
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Solutions for tournament {tournament}.zip"
|
msgid "Solutions for tournament {tournament}.zip"
|
||||||
msgstr "Solutions pour le tournoi {tournament}.zip"
|
msgstr "Solutions pour le tournoi {tournament}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:316 templates/base.html:111 templates/base.html:129
|
#: apps/tournament/views.py:317 templates/base.html:111 templates/base.html:129
|
||||||
#: templates/tournament/pool_detail.html:59
|
#: templates/tournament/pool_detail.html:59
|
||||||
msgid "Syntheses"
|
msgid "Syntheses"
|
||||||
msgstr "Synthèses"
|
msgstr "Synthèses"
|
||||||
|
|
||||||
#: apps/tournament/views.py:332
|
#: apps/tournament/views.py:333
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Syntheses for team {team}.zip"
|
msgid "Syntheses for team {team}.zip"
|
||||||
msgstr "Notes de synthèse de l'équipe {team}.zip"
|
msgstr "Notes de synthèse de l'équipe {team}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:357
|
#: apps/tournament/views.py:358
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your synthesis anymore for the first round. Deadline: "
|
"You can't publish your synthesis anymore for the first round. Deadline: "
|
||||||
"{date:%m-%d-%Y %H:%M}."
|
"{date:%m-%d-%Y %H:%M}."
|
||||||
@ -649,7 +650,7 @@ msgstr ""
|
|||||||
"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. "
|
"Vous ne pouvez plus envoyer vos notes de synthèse pour le premier tour. "
|
||||||
"Deadline : {date:%d/%m/%Y %h:%M}."
|
"Deadline : {date:%d/%m/%Y %h:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:363
|
#: apps/tournament/views.py:364
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can't publish your synthesis anymore for the second round. Deadline: "
|
"You can't publish your synthesis anymore for the second round. Deadline: "
|
||||||
"{date:%m-%d-%Y %H:%M}."
|
"{date:%m-%d-%Y %H:%M}."
|
||||||
@ -657,32 +658,32 @@ msgstr ""
|
|||||||
"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. "
|
"Vous ne pouvez plus envoyer vos notes de synthèse pour le second tour. "
|
||||||
"Deadline : {date:%d/%m/%Y %h:%M}."
|
"Deadline : {date:%d/%m/%Y %h:%M}."
|
||||||
|
|
||||||
#: apps/tournament/views.py:389
|
#: apps/tournament/views.py:390
|
||||||
msgid "All syntheses"
|
msgid "All syntheses"
|
||||||
msgstr "Toutes les notes de synthèses"
|
msgstr "Toutes les notes de synthèses"
|
||||||
|
|
||||||
#: apps/tournament/views.py:408
|
#: apps/tournament/views.py:409
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Syntheses for tournament {tournament}.zip"
|
msgid "Syntheses for tournament {tournament}.zip"
|
||||||
msgstr "Notes de synthèse pour le tournoi {tournament}.zip"
|
msgstr "Notes de synthèse pour le tournoi {tournament}.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:433 templates/base.html:133
|
#: apps/tournament/views.py:434 templates/base.html:133
|
||||||
msgid "Pools"
|
msgid "Pools"
|
||||||
msgstr "Poules"
|
msgstr "Poules"
|
||||||
|
|
||||||
#: apps/tournament/views.py:449
|
#: apps/tournament/views.py:450
|
||||||
msgid "Create pool"
|
msgid "Create pool"
|
||||||
msgstr "Créer une poule"
|
msgstr "Créer une poule"
|
||||||
|
|
||||||
#: apps/tournament/views.py:457
|
#: apps/tournament/views.py:458
|
||||||
msgid "Pool detail"
|
msgid "Pool detail"
|
||||||
msgstr "Détails d'une poule"
|
msgstr "Détails d'une poule"
|
||||||
|
|
||||||
#: apps/tournament/views.py:486
|
#: apps/tournament/views.py:487
|
||||||
msgid "Solutions of a pool.zip"
|
msgid "Solutions of a pool.zip"
|
||||||
msgstr "Solutions d'une poule.zip"
|
msgstr "Solutions d'une poule.zip"
|
||||||
|
|
||||||
#: apps/tournament/views.py:502
|
#: apps/tournament/views.py:503
|
||||||
msgid "Syntheses of a pool.zip"
|
msgid "Syntheses of a pool.zip"
|
||||||
msgstr "Notes de synthèse d'une poule.zip"
|
msgstr "Notes de synthèse d'une poule.zip"
|
||||||
|
|
||||||
@ -829,7 +830,7 @@ msgid "class"
|
|||||||
msgstr "classe"
|
msgstr "classe"
|
||||||
|
|
||||||
#: templates/member/tfjmuser_detail.html:76
|
#: templates/member/tfjmuser_detail.html:76
|
||||||
#: templates/tournament/team_detail.html:110
|
#: templates/tournament/team_detail.html:116
|
||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Documents"
|
msgstr "Documents"
|
||||||
|
|
||||||
@ -1033,43 +1034,47 @@ msgstr "encadrants"
|
|||||||
msgid "participants"
|
msgid "participants"
|
||||||
msgstr "participants"
|
msgstr "participants"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:38
|
#: templates/tournament/team_detail.html:37
|
||||||
|
msgid "Send a mail to people in this team"
|
||||||
|
msgstr "Envoyer un mail à toutes les personnes de cette équipe"
|
||||||
|
|
||||||
|
#: templates/tournament/team_detail.html:44
|
||||||
msgid "Edit team"
|
msgid "Edit team"
|
||||||
msgstr "Modifier l'équipe"
|
msgstr "Modifier l'équipe"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:44
|
#: templates/tournament/team_detail.html:50
|
||||||
msgid "Delete team"
|
msgid "Delete team"
|
||||||
msgstr "Supprimer l'équipe"
|
msgstr "Supprimer l'équipe"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:46
|
#: templates/tournament/team_detail.html:52
|
||||||
msgid "Leave this team"
|
msgid "Leave this team"
|
||||||
msgstr "Quitter l'équipe"
|
msgstr "Quitter l'équipe"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:87
|
#: templates/tournament/team_detail.html:93
|
||||||
msgid "The team is waiting about validation."
|
msgid "The team is waiting about validation."
|
||||||
msgstr "L'équipe est en attente de validation"
|
msgstr "L'équipe est en attente de validation"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:94
|
#: templates/tournament/team_detail.html:100
|
||||||
msgid "Message addressed to the team:"
|
msgid "Message addressed to the team:"
|
||||||
msgstr "Message adressé à l'équipe :"
|
msgstr "Message adressé à l'équipe :"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:95
|
#: templates/tournament/team_detail.html:101
|
||||||
msgid "Message..."
|
msgid "Message..."
|
||||||
msgstr "Message ..."
|
msgstr "Message ..."
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:100
|
#: templates/tournament/team_detail.html:106
|
||||||
msgid "Invalidate team"
|
msgid "Invalidate team"
|
||||||
msgstr "Invalider l'équipe"
|
msgstr "Invalider l'équipe"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:101
|
#: templates/tournament/team_detail.html:107
|
||||||
msgid "Validate team"
|
msgid "Validate team"
|
||||||
msgstr "Valider l'équipe"
|
msgstr "Valider l'équipe"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:114
|
#: templates/tournament/team_detail.html:120
|
||||||
msgid "Motivation letter:"
|
msgid "Motivation letter:"
|
||||||
msgstr "Lettre de motivation :"
|
msgstr "Lettre de motivation :"
|
||||||
|
|
||||||
#: templates/tournament/team_detail.html:130
|
#: templates/tournament/team_detail.html:136
|
||||||
msgid "Download solutions as ZIP"
|
msgid "Download solutions as ZIP"
|
||||||
msgstr "Télécharger les solutions en archive ZIP"
|
msgstr "Télécharger les solutions en archive ZIP"
|
||||||
|
|
||||||
|
@ -32,6 +32,12 @@
|
|||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if user.is_authenticated and user.admin %}
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<a href="mailto:contact@tfjm.org?subject=TFJM²%20{{ "TFJM_YEAR"|get_env }}&bcc={{ team_users_emails|join:"," }}">{% trans "Send a mail to people in this team" %}</a><br>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if user.admin or user in team.tournament.organizers.all or team == user.team %}
|
{% if user.admin or user in team.tournament.organizers.all or team == user.team %}
|
||||||
<div class="card-footer text-center">
|
<div class="card-footer text-center">
|
||||||
{% if team.invalid or user.organizes %}
|
{% if team.invalid or user.organizes %}
|
||||||
|
Loading…
Reference in New Issue
Block a user