Add leave team button
This commit is contained in:
parent
b80f98ef43
commit
d73a92c7f7
|
@ -62,6 +62,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer text-center">
|
<div class="card-footer text-center">
|
||||||
<button class="btn btn-primary" data-toggle="modal" data-target="#updateTeamModal">{% trans "Update" %}</button>
|
<button class="btn btn-primary" data-toggle="modal" data-target="#updateTeamModal">{% trans "Update" %}</button>
|
||||||
|
{% if not team.participation.valid %}
|
||||||
|
<button class="btn btn-danger" data-toggle="modal" data-target="#leaveTeamModal">{% trans "Leave" %}</button>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -120,6 +123,11 @@
|
||||||
{% trans "Update" as modal_button %}
|
{% trans "Update" as modal_button %}
|
||||||
{% url "participation:update_team" pk=team.pk as modal_action %}
|
{% url "participation:update_team" pk=team.pk as modal_action %}
|
||||||
{% include "base_modal.html" with modal_id="updateTeam" %}
|
{% include "base_modal.html" with modal_id="updateTeam" %}
|
||||||
|
|
||||||
|
{% trans "Leave team" as modal_title %}
|
||||||
|
{% trans "Leave" as modal_button %}
|
||||||
|
{% url "participation:team_leave" as modal_action %}
|
||||||
|
{% include "base_modal.html" with modal_id="leaveTeam" modal_button_type="danger" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extrajavascript %}
|
{% block extrajavascript %}
|
||||||
|
@ -130,6 +138,11 @@
|
||||||
if (!modalBody.html().trim())
|
if (!modalBody.html().trim())
|
||||||
modalBody.load("{% url "participation:update_team" pk=team.pk %} #form-content");
|
modalBody.load("{% url "participation:update_team" pk=team.pk %} #form-content");
|
||||||
});
|
});
|
||||||
|
$('button[data-target="#leaveTeamModal"]').click(function() {
|
||||||
|
let modalBody = $("#leaveTeamModal div.modal-body");
|
||||||
|
if (!modalBody.html().trim())
|
||||||
|
modalBody.load("{% url "participation:team_leave" %} #form-content");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<form method="post">
|
||||||
|
<div class="alert alert-warning" id="form-content">
|
||||||
|
{% csrf_token %}
|
||||||
|
{% trans "Are you sure that you want to leave this team?" %}
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-danger" type="submit">{% trans "Leave" %}</button>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
|
@ -1,7 +1,8 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
from .views import CalendarView, CreateTeamView, JoinTeamView, MyParticipationDetailView, MyTeamDetailView, \
|
from .views import CalendarView, CreateTeamView, JoinTeamView, MyParticipationDetailView, MyTeamDetailView, \
|
||||||
ParticipationDetailView, PhaseUpdateView, TeamAuthorizationsView, TeamDetailView, TeamUpdateView, UploadVideoView
|
ParticipationDetailView, PhaseUpdateView, TeamAuthorizationsView, TeamDetailView, TeamLeaveView, TeamUpdateView, \
|
||||||
|
UploadVideoView
|
||||||
|
|
||||||
|
|
||||||
app_name = "participation"
|
app_name = "participation"
|
||||||
|
@ -13,6 +14,7 @@ urlpatterns = [
|
||||||
path("team/<int:pk>/", TeamDetailView.as_view(), name="team_detail"),
|
path("team/<int:pk>/", TeamDetailView.as_view(), name="team_detail"),
|
||||||
path("team/<int:pk>/update/", TeamUpdateView.as_view(), name="update_team"),
|
path("team/<int:pk>/update/", TeamUpdateView.as_view(), name="update_team"),
|
||||||
path("team/<int:pk>/authorizations/", TeamAuthorizationsView.as_view(), name="team_authorizations"),
|
path("team/<int:pk>/authorizations/", TeamAuthorizationsView.as_view(), name="team_authorizations"),
|
||||||
|
path("team/leave/", TeamLeaveView.as_view(), name="team_leave"),
|
||||||
path("detail/", MyParticipationDetailView.as_view(), name="my_participation_detail"),
|
path("detail/", MyParticipationDetailView.as_view(), name="my_participation_detail"),
|
||||||
path("detail/<int:pk>/", ParticipationDetailView.as_view(), name="participation_detail"),
|
path("detail/<int:pk>/", ParticipationDetailView.as_view(), name="participation_detail"),
|
||||||
path("detail/upload-video/<int:pk>/", UploadVideoView.as_view(), name="upload_video"),
|
path("detail/upload-video/<int:pk>/", UploadVideoView.as_view(), name="upload_video"),
|
||||||
|
|
|
@ -2,6 +2,9 @@ from io import BytesIO
|
||||||
import os
|
import os
|
||||||
from zipfile import ZipFile
|
from zipfile import ZipFile
|
||||||
|
|
||||||
|
from django.shortcuts import redirect
|
||||||
|
from django.views.generic.base import View, TemplateView
|
||||||
|
|
||||||
from corres2math.lists import get_sympa_client
|
from corres2math.lists import get_sympa_client
|
||||||
from corres2math.views import AdminMixin
|
from corres2math.views import AdminMixin
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
|
@ -236,6 +239,29 @@ class TeamAuthorizationsView(LoginRequiredMixin, DetailView):
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
class TeamLeaveView(LoginRequiredMixin, TemplateView):
|
||||||
|
template_name = "participation/team_leave.html"
|
||||||
|
|
||||||
|
def dispatch(self, request, *args, **kwargs):
|
||||||
|
if not request.user.is_authenticated:
|
||||||
|
return self.handle_no_permission()
|
||||||
|
if not request.user.registration.team:
|
||||||
|
raise PermissionDenied(_("You are not in a team."))
|
||||||
|
if request.user.registration.team.participation.valid is not None:
|
||||||
|
raise PermissionDenied(_("The team is already validated or the validation is pending."))
|
||||||
|
return super().dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@transaction.atomic()
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
team = request.user.registration.team
|
||||||
|
request.user.registration.team = None
|
||||||
|
request.user.registration.save()
|
||||||
|
get_sympa_client().unsubscribe(request.user.email, f"equipe-{team.trigram.lower()}", False)
|
||||||
|
if team.students.count() + team.coachs.count() == 0:
|
||||||
|
team.delete()
|
||||||
|
return redirect(reverse_lazy("index"))
|
||||||
|
|
||||||
|
|
||||||
class MyParticipationDetailView(LoginRequiredMixin, RedirectView):
|
class MyParticipationDetailView(LoginRequiredMixin, RedirectView):
|
||||||
def get_redirect_url(self, *args, **kwargs):
|
def get_redirect_url(self, *args, **kwargs):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Corres2math\n"
|
"Project-Id-Version: Corres2math\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-10-20 15:21+0200\n"
|
"POT-Creation-Date: 2020-10-20 15:53+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -99,7 +99,7 @@ msgstr "changelogs"
|
||||||
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
|
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
|
||||||
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
|
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
|
||||||
|
|
||||||
#: apps/participation/forms.py:15 apps/participation/models.py:27
|
#: apps/participation/forms.py:15 apps/participation/models.py:28
|
||||||
msgid "The trigram must be composed of three uppercase letters."
|
msgid "The trigram must be composed of three uppercase letters."
|
||||||
msgstr "Le trigramme doit être composé de trois lettres majuscules."
|
msgstr "Le trigramme doit être composé de trois lettres majuscules."
|
||||||
|
|
||||||
|
@ -131,28 +131,28 @@ msgstr "Cette phase doit commencer après les phases précédentes."
|
||||||
msgid "This phase must end after the next phases."
|
msgid "This phase must end after the next phases."
|
||||||
msgstr "Cette phase doit finir avant les phases suivantes."
|
msgstr "Cette phase doit finir avant les phases suivantes."
|
||||||
|
|
||||||
#: apps/participation/models.py:20 apps/participation/tables.py:30
|
#: apps/participation/models.py:21 apps/participation/tables.py:30
|
||||||
#: apps/participation/tables.py:52 apps/participation/tables.py:78
|
#: apps/participation/tables.py:52 apps/participation/tables.py:78
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: apps/participation/models.py:26 apps/participation/tables.py:57
|
#: apps/participation/models.py:27 apps/participation/tables.py:57
|
||||||
msgid "trigram"
|
msgid "trigram"
|
||||||
msgstr "trigramme"
|
msgstr "trigramme"
|
||||||
|
|
||||||
#: apps/participation/models.py:34
|
#: apps/participation/models.py:35
|
||||||
msgid "access code"
|
msgid "access code"
|
||||||
msgstr "code d'accès"
|
msgstr "code d'accès"
|
||||||
|
|
||||||
#: apps/participation/models.py:35
|
#: apps/participation/models.py:36
|
||||||
msgid "The access code let other people to join the team."
|
msgid "The access code let other people to join the team."
|
||||||
msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
|
msgstr "Le code d'accès permet aux autres participants de rejoindre l'équipe."
|
||||||
|
|
||||||
#: apps/participation/models.py:39
|
#: apps/participation/models.py:40
|
||||||
msgid "Grant Animath to publish my video"
|
msgid "Grant Animath to publish my video"
|
||||||
msgstr "Autoriser Animath à publier ma vidéo"
|
msgstr "Autoriser Animath à publier ma vidéo"
|
||||||
|
|
||||||
#: apps/participation/models.py:40
|
#: apps/participation/models.py:41
|
||||||
msgid ""
|
msgid ""
|
||||||
"Give the authorisation to publish the video on the main website to promote "
|
"Give the authorisation to publish the video on the main website to promote "
|
||||||
"the action."
|
"the action."
|
||||||
|
@ -160,101 +160,101 @@ msgstr ""
|
||||||
"Donner l'autorisation de publier la vidéo sur le site principal pour "
|
"Donner l'autorisation de publier la vidéo sur le site principal pour "
|
||||||
"promouvoir les Correspondances."
|
"promouvoir les Correspondances."
|
||||||
|
|
||||||
#: apps/participation/models.py:67
|
#: apps/participation/models.py:72
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Team {name} ({trigram})"
|
msgid "Team {name} ({trigram})"
|
||||||
msgstr "Équipe {name} ({trigram})"
|
msgstr "Équipe {name} ({trigram})"
|
||||||
|
|
||||||
#: apps/participation/models.py:70 apps/participation/models.py:81
|
#: apps/participation/models.py:75 apps/participation/models.py:86
|
||||||
#: apps/registration/models.py:89 apps/registration/models.py:134
|
#: apps/registration/models.py:89 apps/registration/models.py:134
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "équipe"
|
msgstr "équipe"
|
||||||
|
|
||||||
#: apps/participation/models.py:71
|
#: apps/participation/models.py:76
|
||||||
msgid "teams"
|
msgid "teams"
|
||||||
msgstr "équipes"
|
msgstr "équipes"
|
||||||
|
|
||||||
#: apps/participation/models.py:85
|
#: apps/participation/models.py:90
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Problem #{problem:d}"
|
msgid "Problem #{problem:d}"
|
||||||
msgstr "Problème n°{problem:d}"
|
msgstr "Problème n°{problem:d}"
|
||||||
|
|
||||||
#: apps/participation/models.py:88 apps/participation/tables.py:35
|
#: apps/participation/models.py:93 apps/participation/tables.py:35
|
||||||
#: apps/participation/tables.py:62
|
#: apps/participation/tables.py:62
|
||||||
msgid "problem number"
|
msgid "problem number"
|
||||||
msgstr "numéro de problème"
|
msgstr "numéro de problème"
|
||||||
|
|
||||||
#: apps/participation/models.py:94 apps/participation/models.py:145
|
#: apps/participation/models.py:99 apps/participation/models.py:150
|
||||||
msgid "valid"
|
msgid "valid"
|
||||||
msgstr "valide"
|
msgstr "valide"
|
||||||
|
|
||||||
#: apps/participation/models.py:95 apps/participation/models.py:146
|
#: apps/participation/models.py:100 apps/participation/models.py:151
|
||||||
msgid "The video got the validation of the administrators."
|
msgid "The video got the validation of the administrators."
|
||||||
msgstr "La vidéo a été validée par les administrateurs."
|
msgstr "La vidéo a été validée par les administrateurs."
|
||||||
|
|
||||||
#: apps/participation/models.py:104
|
#: apps/participation/models.py:109
|
||||||
msgid "solution video"
|
msgid "solution video"
|
||||||
msgstr "vidéo de solution"
|
msgstr "vidéo de solution"
|
||||||
|
|
||||||
#: apps/participation/models.py:113
|
#: apps/participation/models.py:118
|
||||||
msgid "received participation"
|
msgid "received participation"
|
||||||
msgstr "participation reçue"
|
msgstr "participation reçue"
|
||||||
|
|
||||||
#: apps/participation/models.py:122
|
#: apps/participation/models.py:127
|
||||||
msgid "synthesis video"
|
msgid "synthesis video"
|
||||||
msgstr "vidéo de synthèse"
|
msgstr "vidéo de synthèse"
|
||||||
|
|
||||||
#: apps/participation/models.py:129
|
#: apps/participation/models.py:134
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Participation of the team {name} ({trigram})"
|
msgid "Participation of the team {name} ({trigram})"
|
||||||
msgstr "Participation de l'équipe {name} ({trigram})"
|
msgstr "Participation de l'équipe {name} ({trigram})"
|
||||||
|
|
||||||
#: apps/participation/models.py:132
|
#: apps/participation/models.py:137
|
||||||
msgid "participation"
|
msgid "participation"
|
||||||
msgstr "participation"
|
msgstr "participation"
|
||||||
|
|
||||||
#: apps/participation/models.py:133
|
#: apps/participation/models.py:138
|
||||||
msgid "participations"
|
msgid "participations"
|
||||||
msgstr "participations"
|
msgstr "participations"
|
||||||
|
|
||||||
#: apps/participation/models.py:138
|
#: apps/participation/models.py:143
|
||||||
msgid "link"
|
msgid "link"
|
||||||
msgstr "lien"
|
msgstr "lien"
|
||||||
|
|
||||||
#: apps/participation/models.py:139
|
#: apps/participation/models.py:144
|
||||||
msgid "The full video link."
|
msgid "The full video link."
|
||||||
msgstr "Le lien complet de la vidéo."
|
msgstr "Le lien complet de la vidéo."
|
||||||
|
|
||||||
#: apps/participation/models.py:173
|
#: apps/participation/models.py:178
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Video of team {name} ({trigram})"
|
msgid "Video of team {name} ({trigram})"
|
||||||
msgstr "Vidéo de l'équipe {name} ({trigram})"
|
msgstr "Vidéo de l'équipe {name} ({trigram})"
|
||||||
|
|
||||||
#: apps/participation/models.py:177
|
#: apps/participation/models.py:182
|
||||||
msgid "video"
|
msgid "video"
|
||||||
msgstr "vidéo"
|
msgstr "vidéo"
|
||||||
|
|
||||||
#: apps/participation/models.py:178
|
#: apps/participation/models.py:183
|
||||||
msgid "videos"
|
msgid "videos"
|
||||||
msgstr "vidéos"
|
msgstr "vidéos"
|
||||||
|
|
||||||
#: apps/participation/models.py:185
|
#: apps/participation/models.py:190
|
||||||
msgid "phase number"
|
msgid "phase number"
|
||||||
msgstr "phase"
|
msgstr "phase"
|
||||||
|
|
||||||
#: apps/participation/models.py:190
|
#: apps/participation/models.py:195
|
||||||
msgid "phase description"
|
msgid "phase description"
|
||||||
msgstr "description"
|
msgstr "description"
|
||||||
|
|
||||||
#: apps/participation/models.py:194
|
#: apps/participation/models.py:199
|
||||||
msgid "start date of the given phase"
|
msgid "start date of the given phase"
|
||||||
msgstr "début de la phase"
|
msgstr "début de la phase"
|
||||||
|
|
||||||
#: apps/participation/models.py:199
|
#: apps/participation/models.py:204
|
||||||
msgid "end date of the given phase"
|
msgid "end date of the given phase"
|
||||||
msgstr "fin de la phase"
|
msgstr "fin de la phase"
|
||||||
|
|
||||||
#: apps/participation/models.py:214
|
#: apps/participation/models.py:219
|
||||||
msgid ""
|
msgid ""
|
||||||
"Phase {phase_number:d} starts on {start:%Y-%m-%d %H:%M} and ends on {end:%Y-"
|
"Phase {phase_number:d} starts on {start:%Y-%m-%d %H:%M} and ends on {end:%Y-"
|
||||||
"%m-%d %H:%M}"
|
"%m-%d %H:%M}"
|
||||||
|
@ -262,11 +262,11 @@ msgstr ""
|
||||||
"Phase {phase_number:d} démarrant le {start:%d/%m/%Y %H:%M} et finissant le "
|
"Phase {phase_number:d} démarrant le {start:%d/%m/%Y %H:%M} et finissant le "
|
||||||
"{end:%d/%m/%Y %H:%M}"
|
"{end:%d/%m/%Y %H:%M}"
|
||||||
|
|
||||||
#: apps/participation/models.py:218
|
#: apps/participation/models.py:223
|
||||||
msgid "phase"
|
msgid "phase"
|
||||||
msgstr "phase"
|
msgstr "phase"
|
||||||
|
|
||||||
#: apps/participation/models.py:219
|
#: apps/participation/models.py:224
|
||||||
msgid "phases"
|
msgid "phases"
|
||||||
msgstr "phases"
|
msgstr "phases"
|
||||||
|
|
||||||
|
@ -281,9 +281,9 @@ msgid "Join"
|
||||||
msgstr "Rejoindre"
|
msgstr "Rejoindre"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/participation_detail.html:6
|
#: apps/participation/templates/participation/participation_detail.html:6
|
||||||
#: apps/participation/templates/participation/team_detail.html:28
|
#: apps/participation/templates/participation/team_detail.html:31
|
||||||
#: apps/participation/templates/participation/team_detail.html:37
|
#: apps/participation/templates/participation/team_detail.html:40
|
||||||
#: apps/participation/templates/participation/team_detail.html:42
|
#: apps/participation/templates/participation/team_detail.html:45
|
||||||
#: apps/registration/templates/registration/user_detail.html:6
|
#: apps/registration/templates/registration/user_detail.html:6
|
||||||
#: apps/registration/templates/registration/user_detail.html:26
|
#: apps/registration/templates/registration/user_detail.html:26
|
||||||
msgid "any"
|
msgid "any"
|
||||||
|
@ -299,7 +299,7 @@ msgid "Team:"
|
||||||
msgstr "Équipe :"
|
msgstr "Équipe :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/participation_detail.html:16
|
#: apps/participation/templates/participation/participation_detail.html:16
|
||||||
#: apps/participation/templates/participation/team_detail.html:41
|
#: apps/participation/templates/participation/team_detail.html:44
|
||||||
msgid "Chosen problem:"
|
msgid "Chosen problem:"
|
||||||
msgstr "Problème choisi :"
|
msgstr "Problème choisi :"
|
||||||
|
|
||||||
|
@ -337,8 +337,8 @@ msgstr "La plateforme de cette vidéo n'est pas encore supportée."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/phase_form.html:11
|
#: apps/participation/templates/participation/phase_form.html:11
|
||||||
#: apps/participation/templates/participation/phase_list.html:18
|
#: apps/participation/templates/participation/phase_list.html:18
|
||||||
#: apps/participation/templates/participation/team_detail.html:61
|
#: apps/participation/templates/participation/team_detail.html:64
|
||||||
#: apps/participation/templates/participation/team_detail.html:117
|
#: apps/participation/templates/participation/team_detail.html:123
|
||||||
#: apps/participation/templates/participation/update_team.html:12
|
#: apps/participation/templates/participation/update_team.html:12
|
||||||
#: apps/registration/templates/registration/update_user.html:12
|
#: apps/registration/templates/registration/update_user.html:12
|
||||||
#: apps/registration/templates/registration/user_detail.html:64
|
#: apps/registration/templates/registration/user_detail.html:64
|
||||||
|
@ -364,34 +364,45 @@ msgid "Trigram:"
|
||||||
msgstr "Trigramme :"
|
msgstr "Trigramme :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:20
|
#: apps/participation/templates/participation/team_detail.html:20
|
||||||
|
#: apps/registration/templates/registration/user_detail.html:20
|
||||||
|
msgid "Email:"
|
||||||
|
msgstr "Adresse e-mail :"
|
||||||
|
|
||||||
|
#: apps/participation/templates/participation/team_detail.html:23
|
||||||
msgid "Access code:"
|
msgid "Access code:"
|
||||||
msgstr "Code d'accès :"
|
msgstr "Code d'accès :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:23
|
#: apps/participation/templates/participation/team_detail.html:26
|
||||||
msgid "Coachs:"
|
msgid "Coachs:"
|
||||||
msgstr "Encadrants :"
|
msgstr "Encadrants :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:32
|
#: apps/participation/templates/participation/team_detail.html:35
|
||||||
msgid "Participants:"
|
msgid "Participants:"
|
||||||
msgstr "Participants :"
|
msgstr "Participants :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:45
|
#: apps/participation/templates/participation/team_detail.html:48
|
||||||
msgid "Grant Animath to publish our video:"
|
msgid "Grant Animath to publish our video:"
|
||||||
msgstr "Autoriser Animath à publier notre vidéo :"
|
msgstr "Autoriser Animath à publier notre vidéo :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:48
|
#: apps/participation/templates/participation/team_detail.html:51
|
||||||
msgid "Authorizations:"
|
msgid "Authorizations:"
|
||||||
msgstr "Autorisations :"
|
msgstr "Autorisations :"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:54
|
#: apps/participation/templates/participation/team_detail.html:57
|
||||||
msgid "Not uploaded yet"
|
msgid "Not uploaded yet"
|
||||||
msgstr "Pas encore envoyée"
|
msgstr "Pas encore envoyée"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:70
|
#: apps/participation/templates/participation/team_detail.html:66
|
||||||
|
#: apps/participation/templates/participation/team_detail.html:128
|
||||||
|
#: apps/participation/templates/participation/team_leave.html:9
|
||||||
|
msgid "Leave"
|
||||||
|
msgstr "Quitter"
|
||||||
|
|
||||||
|
#: apps/participation/templates/participation/team_detail.html:76
|
||||||
msgid "Access to team participation"
|
msgid "Access to team participation"
|
||||||
msgstr "Accéder à la participation de l'équipe"
|
msgstr "Accéder à la participation de l'équipe"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:77
|
#: apps/participation/templates/participation/team_detail.html:83
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your team has at least 3 members and all photo authorizations were given: "
|
"Your team has at least 3 members and all photo authorizations were given: "
|
||||||
"the team can be validated."
|
"the team can be validated."
|
||||||
|
@ -399,11 +410,11 @@ msgstr ""
|
||||||
"Votre équipe contient au moins 3 personnes et toutes les autorisations de "
|
"Votre équipe contient au moins 3 personnes et toutes les autorisations de "
|
||||||
"droit à l'image ont été données : l'équipe peut être validée."
|
"droit à l'image ont été données : l'équipe peut être validée."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:82
|
#: apps/participation/templates/participation/team_detail.html:88
|
||||||
msgid "Submit my team to validation"
|
msgid "Submit my team to validation"
|
||||||
msgstr "Soumettre mon équipe à validation"
|
msgstr "Soumettre mon équipe à validation"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:88
|
#: apps/participation/templates/participation/team_detail.html:94
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your team must be composed of 3 members and each member must upload its "
|
"Your team must be composed of 3 members and each member must upload its "
|
||||||
"photo authorization and confirm its email address."
|
"photo authorization and confirm its email address."
|
||||||
|
@ -411,15 +422,15 @@ msgstr ""
|
||||||
"Votre équipe doit être composée de 3 membres et chaque membre doit envoyer "
|
"Votre équipe doit être composée de 3 membres et chaque membre doit envoyer "
|
||||||
"son autorisation de droit à l'image et confirmé son adresse e-mail."
|
"son autorisation de droit à l'image et confirmé son adresse e-mail."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:93
|
#: apps/participation/templates/participation/team_detail.html:99
|
||||||
msgid "This team didn't ask for validation yet."
|
msgid "This team didn't ask for validation yet."
|
||||||
msgstr "L'équipe n'a pas encore demandé à être validée."
|
msgstr "L'équipe n'a pas encore demandé à être validée."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:99
|
#: apps/participation/templates/participation/team_detail.html:105
|
||||||
msgid "Your validation is pending."
|
msgid "Your validation is pending."
|
||||||
msgstr "Votre validation est en attente."
|
msgstr "Votre validation est en attente."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:103
|
#: apps/participation/templates/participation/team_detail.html:109
|
||||||
msgid ""
|
msgid ""
|
||||||
"The team requested to be validated. You may now control the authorizations "
|
"The team requested to be validated. You may now control the authorizations "
|
||||||
"and confirm that they can participate."
|
"and confirm that they can participate."
|
||||||
|
@ -427,85 +438,92 @@ msgstr ""
|
||||||
"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
|
"L'équipe a demandé à être validée. Vous pouvez désormais contrôler les "
|
||||||
"différentes autorisations et confirmer qu'elle peut participer."
|
"différentes autorisations et confirmer qu'elle peut participer."
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:109
|
#: apps/participation/templates/participation/team_detail.html:115
|
||||||
msgid "Validate"
|
msgid "Validate"
|
||||||
msgstr "Valider"
|
msgstr "Valider"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:110
|
#: apps/participation/templates/participation/team_detail.html:116
|
||||||
msgid "Invalidate"
|
msgid "Invalidate"
|
||||||
msgstr "Invalider"
|
msgstr "Invalider"
|
||||||
|
|
||||||
#: apps/participation/templates/participation/team_detail.html:116
|
#: apps/participation/templates/participation/team_detail.html:122
|
||||||
msgid "Update team"
|
msgid "Update team"
|
||||||
msgstr "Modifier l'équipe"
|
msgstr "Modifier l'équipe"
|
||||||
|
|
||||||
#: apps/participation/views.py:30 templates/base.html:77
|
#: apps/participation/templates/participation/team_detail.html:127
|
||||||
|
msgid "Leave team"
|
||||||
|
msgstr "Quitter l'équipe"
|
||||||
|
|
||||||
|
#: apps/participation/templates/participation/team_leave.html: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/views.py:32 templates/base.html:77
|
||||||
#: templates/base.html:228
|
#: templates/base.html:228
|
||||||
msgid "Create team"
|
msgid "Create team"
|
||||||
msgstr "Créer une équipe"
|
msgstr "Créer une équipe"
|
||||||
|
|
||||||
#: apps/participation/views.py:37 apps/participation/views.py:67
|
#: apps/participation/views.py:39 apps/participation/views.py:69
|
||||||
msgid "You don't participate, so you can't create a team."
|
msgid "You don't participate, so you can't create a team."
|
||||||
msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
|
msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
|
||||||
|
|
||||||
#: apps/participation/views.py:39 apps/participation/views.py:69
|
#: apps/participation/views.py:41 apps/participation/views.py:71
|
||||||
msgid "You are already in a team."
|
msgid "You are already in a team."
|
||||||
msgstr "Vous êtes déjà dans une équipe."
|
msgstr "Vous êtes déjà dans une équipe."
|
||||||
|
|
||||||
#: apps/participation/views.py:60 templates/base.html:82
|
#: apps/participation/views.py:62 templates/base.html:82
|
||||||
#: templates/base.html:224
|
#: templates/base.html:224
|
||||||
msgid "Join team"
|
msgid "Join team"
|
||||||
msgstr "Rejoindre une équipe"
|
msgstr "Rejoindre une équipe"
|
||||||
|
|
||||||
#: apps/participation/views.py:95 apps/participation/views.py:249
|
#: apps/participation/views.py:97 apps/participation/views.py:248
|
||||||
|
#: apps/participation/views.py:259
|
||||||
msgid "You are not in a team."
|
msgid "You are not in a team."
|
||||||
msgstr "Vous n'êtes pas dans une équipe."
|
msgstr "Vous n'êtes pas dans une équipe."
|
||||||
|
|
||||||
#: apps/participation/views.py:96 apps/participation/views.py:250
|
#: apps/participation/views.py:98 apps/participation/views.py:260
|
||||||
msgid "You don't participate, so you don't have any team."
|
msgid "You don't participate, so you don't have any team."
|
||||||
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
|
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
|
||||||
|
|
||||||
#: apps/participation/views.py:135
|
#: apps/participation/views.py:137
|
||||||
msgid "You don't participate, so you can't request the validation of the team."
|
msgid "You don't participate, so you can't request the validation of the team."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
|
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
|
||||||
"l'équipe."
|
"l'équipe."
|
||||||
|
|
||||||
#: apps/participation/views.py:138
|
#: apps/participation/views.py:140
|
||||||
msgid "The validation of the team is already done or pending."
|
msgid "The validation of the team is already done or pending."
|
||||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||||
|
|
||||||
#: apps/participation/views.py:151
|
#: apps/participation/views.py:153
|
||||||
msgid "You are not an administrator."
|
msgid "You are not an administrator."
|
||||||
msgstr "Vous n'êtes pas administrateur."
|
msgstr "Vous n'êtes pas administrateur."
|
||||||
|
|
||||||
#: apps/participation/views.py:154
|
#: apps/participation/views.py:156
|
||||||
msgid "This team has no pending validation."
|
msgid "This team has no pending validation."
|
||||||
msgstr "L'équipe n'a pas de validation en attente."
|
msgstr "L'équipe n'a pas de validation en attente."
|
||||||
|
|
||||||
#: apps/participation/views.py:176
|
#: apps/participation/views.py:175
|
||||||
msgid "You must specify if you validate the registration or not."
|
msgid "You must specify if you validate the registration or not."
|
||||||
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
|
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
|
||||||
|
|
||||||
#: apps/participation/views.py:233 apps/registration/views.py:213
|
#: apps/participation/views.py:232 apps/registration/views.py:213
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Photo authorization of {student}.{ext}"
|
msgid "Photo authorization of {student}.{ext}"
|
||||||
msgstr "Autorisation de droit à l'image de {student}.{ext}"
|
msgstr "Autorisation de droit à l'image de {student}.{ext}"
|
||||||
|
|
||||||
#: apps/participation/views.py:237
|
#: apps/participation/views.py:236
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Photo authorizations of team {trigram}.zip"
|
msgid "Photo authorizations of team {trigram}.zip"
|
||||||
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
|
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
|
||||||
|
|
||||||
#: apps/participation/views.py:259
|
#: apps/participation/views.py:269
|
||||||
msgid "The team is not validated yet."
|
msgid "The team is not validated yet."
|
||||||
msgstr "L'équipe n'est pas encore validée."
|
msgstr "L'équipe n'est pas encore validée."
|
||||||
|
|
||||||
#: apps/participation/views.py:268
|
#: apps/participation/views.py:278
|
||||||
#, fuzzy, python-brace-format
|
|
||||||
#| msgid "Participation of the team {name} ({trigram})"
|
|
||||||
msgid "Participation of team {trigram}"
|
msgid "Participation of team {trigram}"
|
||||||
msgstr "Participation de l'équipe {name} ({trigram})"
|
msgstr "Participation de l'équipe {trigram}"
|
||||||
|
|
||||||
#: apps/registration/forms.py:13
|
#: apps/registration/forms.py:13
|
||||||
msgid "role"
|
msgid "role"
|
||||||
|
@ -779,10 +797,6 @@ msgstr "Nom de famille :"
|
||||||
msgid "First name:"
|
msgid "First name:"
|
||||||
msgstr "Prénom :"
|
msgstr "Prénom :"
|
||||||
|
|
||||||
#: apps/registration/templates/registration/user_detail.html:20
|
|
||||||
msgid "Email:"
|
|
||||||
msgstr "Adresse e-mail :"
|
|
||||||
|
|
||||||
#: apps/registration/templates/registration/user_detail.html:22
|
#: apps/registration/templates/registration/user_detail.html:22
|
||||||
msgid "Not confirmed"
|
msgid "Not confirmed"
|
||||||
msgstr "Non confirmée"
|
msgstr "Non confirmée"
|
||||||
|
|
Loading…
Reference in New Issue