Merge branch 'improvements' into 'master'
Improvements See merge request animath/si/plateforme-corres2math!5
This commit is contained in:
commit
d104c2ff1f
|
@ -0,0 +1,13 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% load django_tables2 i18n %}
|
||||
|
||||
{% block contenttitle %}
|
||||
<h1>{% trans "All teams" %}</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div id="form-content">
|
||||
{% render_table table %}
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -185,6 +185,13 @@ class TestStudentParticipation(TestCase):
|
|||
))
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_team_list(self):
|
||||
"""
|
||||
Test to display the list of teams.
|
||||
"""
|
||||
response = self.client.get(reverse("participation:team_list"))
|
||||
self.assertTrue(response.status_code, 200)
|
||||
|
||||
def test_no_myteam_redirect_noteam(self):
|
||||
"""
|
||||
Test redirection.
|
||||
|
|
|
@ -4,7 +4,7 @@ from django.views.generic import TemplateView
|
|||
from .views import CalendarView, CreateQuestionView, CreateTeamView, DeleteQuestionView, JoinTeamView, \
|
||||
MyParticipationDetailView, MyTeamDetailView, ParticipationDetailView, PhaseUpdateView, \
|
||||
SetParticipationReceiveParticipationView, SetParticipationSendParticipationView, TeamAuthorizationsView, \
|
||||
TeamDetailView, TeamLeaveView, TeamUpdateView, UpdateQuestionView, UploadVideoView
|
||||
TeamDetailView, TeamLeaveView, TeamListView, TeamUpdateView, UpdateQuestionView, UploadVideoView
|
||||
|
||||
|
||||
app_name = "participation"
|
||||
|
@ -12,6 +12,7 @@ app_name = "participation"
|
|||
urlpatterns = [
|
||||
path("create_team/", CreateTeamView.as_view(), name="create_team"),
|
||||
path("join_team/", JoinTeamView.as_view(), name="join_team"),
|
||||
path("teams/", TeamListView.as_view(), name="team_list"),
|
||||
path("team/", MyTeamDetailView.as_view(), name="my_team_detail"),
|
||||
path("team/<int:pk>/", TeamDetailView.as_view(), name="team_detail"),
|
||||
path("team/<int:pk>/update/", TeamUpdateView.as_view(), name="update_team"),
|
||||
|
|
|
@ -23,7 +23,7 @@ from .forms import JoinTeamForm, ParticipationForm, PhaseForm, QuestionForm, \
|
|||
ReceiveParticipationForm, RequestValidationForm, SendParticipationForm, TeamForm, \
|
||||
UploadVideoForm, ValidateParticipationForm
|
||||
from .models import Participation, Phase, Question, Team, Video
|
||||
from .tables import CalendarTable
|
||||
from .tables import CalendarTable, TeamTable
|
||||
|
||||
|
||||
class CreateTeamView(LoginRequiredMixin, CreateView):
|
||||
|
@ -119,6 +119,15 @@ class JoinTeamView(LoginRequiredMixin, FormView):
|
|||
return reverse_lazy("participation:team_detail", args=(self.object.pk,))
|
||||
|
||||
|
||||
class TeamListView(AdminMixin, SingleTableView):
|
||||
"""
|
||||
Display the whole list of teams
|
||||
"""
|
||||
model = Team
|
||||
table_class = TeamTable
|
||||
ordering = ('participation__problem', 'trigram',)
|
||||
|
||||
|
||||
class MyTeamDetailView(LoginRequiredMixin, RedirectView):
|
||||
"""
|
||||
Redirect to the detail of the team in which the user is.
|
||||
|
|
|
@ -70,7 +70,11 @@
|
|||
<a href="#" class="nav-link" data-toggle="modal" data-target="#calendarModal"><i class="fas fa-calendar"></i> {% trans "Calendar" %}</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% if user.is_authenticated and user.registration.participates %}
|
||||
{% if user.is_authenticated and user.registration.is_admin %}
|
||||
<li class="nav-item active">
|
||||
<a href="#" class="nav-link" data-toggle="modal" data-target="#teamsModal"><i class="fas fa-users"></i> {% trans "Teams" %}</a>
|
||||
</li>
|
||||
{% elif user.is_authenticated and user.registration.participates %}
|
||||
{% if not user.registration.team %}
|
||||
<li class="nav-item active">
|
||||
<a href="#" class="nav-link" data-toggle="modal" data-target="#createTeamModal">
|
||||
|
@ -218,21 +222,28 @@
|
|||
|
||||
{% trans "Calendar" as modal_title %}
|
||||
{% include "base_modal.html" with modal_id="calendar" modal_additional_class="modal-lg" %}
|
||||
{% trans "Search results" as modal_title %}
|
||||
{% include "base_modal.html" with modal_id="search" modal_form_method="get" modal_additional_class="modal-lg" %}
|
||||
{% trans "Log in" as modal_title %}
|
||||
{% trans "Log in" as modal_button %}
|
||||
{% url "login" as modal_action %}
|
||||
{% include "base_modal.html" with modal_id="login" %}
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
{% trans "All teams" as modal_title %}
|
||||
{% include "base_modal.html" with modal_id="teams" modal_additional_class="modal-lg" %}
|
||||
|
||||
{% trans "Search results" as modal_title %}
|
||||
{% include "base_modal.html" with modal_id="search" modal_form_method="get" modal_additional_class="modal-lg" %}
|
||||
|
||||
{% trans "Join team" as modal_title %}
|
||||
{% trans "Join" as modal_button %}
|
||||
{% url "participation:join_team" as modal_action %}
|
||||
|
||||
{% include "base_modal.html" with modal_id="joinTeam" %}
|
||||
{% trans "Create team" as modal_title %}
|
||||
{% trans "Create" as modal_button %}
|
||||
{% url "participation:create_team" as modal_action %}
|
||||
{% include "base_modal.html" with modal_id="createTeam" modal_button_type="success" %}
|
||||
{% else %}
|
||||
{% trans "Log in" as modal_title %}
|
||||
{% trans "Log in" as modal_button %}
|
||||
{% url "login" as modal_action %}
|
||||
{% include "base_modal.html" with modal_id="login" %}
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
|
@ -245,26 +256,39 @@
|
|||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:calendar" %} #form-content")
|
||||
});
|
||||
$('button[data-target="#searchModal"]').click(function() {
|
||||
let modalBody = $("#searchModal div.modal-body");
|
||||
let q = encodeURI($("#search-term").val());
|
||||
modalBody.load("{% url "haystack_search" %}?q=" + q + " #search-results");
|
||||
});
|
||||
{% if user.is_authenticated and user.registration.is_admin %}
|
||||
$('a[data-target="#teamsModal"]').click(function() {
|
||||
let modalBody = $("#teamsModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:team_list" %} #form-content")
|
||||
});
|
||||
$('button[data-target="#searchModal"]').click(function() {
|
||||
let modalBody = $("#searchModal div.modal-body");
|
||||
let q = encodeURI($("#search-term").val());
|
||||
modalBody.load("{% url "haystack_search" %}?q=" + q + " #search-results");
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
{% if not user.is_authenticated %}
|
||||
$('a[data-target="#loginModal"]').click(function() {
|
||||
let modalBody = $("#loginModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "login" %} #form-content")
|
||||
});
|
||||
$('a[data-target="#createTeamModal"]').click(function() {
|
||||
let modalBody = $("#createTeamModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:create_team" %} #form-content");
|
||||
});
|
||||
$('a[data-target="#joinTeamModal"]').click(function() {
|
||||
let modalBody = $("#joinTeamModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:join_team" %} #form-content");
|
||||
});
|
||||
let modalBody = $("#loginModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "login" %} #form-content")
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_authenticated and user.registration.participates and not user.registration.team %}
|
||||
$('a[data-target="#createTeamModal"]').click(function() {
|
||||
let modalBody = $("#createTeamModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:create_team" %} #form-content");
|
||||
});
|
||||
$('a[data-target="#joinTeamModal"]').click(function() {
|
||||
let modalBody = $("#joinTeamModal div.modal-body");
|
||||
if (!modalBody.html().trim())
|
||||
modalBody.load("{% url "participation:join_team" %} #form-content");
|
||||
});
|
||||
{% endif %}
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Corres2math\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-11-15 01:49+0100\n"
|
||||
"POT-Creation-Date: 2020-11-16 11:55+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"
|
||||
|
@ -99,13 +99,13 @@ msgstr "changelogs"
|
|||
msgid "Changelog of type \"{action}\" for model {model} at {timestamp}"
|
||||
msgstr "Changelog de type \"{action}\" pour le modèle {model} le {timestamp}"
|
||||
|
||||
#: apps/participation/admin.py:16 apps/participation/models.py:132
|
||||
#: apps/participation/admin.py:16 apps/participation/models.py:121
|
||||
#: apps/participation/tables.py:35 apps/participation/tables.py:62
|
||||
msgid "problem number"
|
||||
msgstr "numéro de problème"
|
||||
|
||||
#: apps/participation/admin.py:21 apps/participation/models.py:138
|
||||
#: apps/participation/models.py:192
|
||||
#: apps/participation/admin.py:21 apps/participation/models.py:127
|
||||
#: apps/participation/models.py:181
|
||||
msgid "valid"
|
||||
msgstr "valide"
|
||||
|
||||
|
@ -184,96 +184,96 @@ msgstr ""
|
|||
"Donner l'autorisation de publier la vidéo sur le site principal pour "
|
||||
"promouvoir les Correspondances."
|
||||
|
||||
#: apps/participation/models.py:107
|
||||
#: apps/participation/models.py:96
|
||||
#, python-brace-format
|
||||
msgid "Team {name} ({trigram})"
|
||||
msgstr "Équipe {name} ({trigram})"
|
||||
|
||||
#: apps/participation/models.py:110 apps/participation/models.py:125
|
||||
#: apps/participation/models.py:99 apps/participation/models.py:114
|
||||
#: apps/registration/models.py:106 apps/registration/models.py:155
|
||||
msgid "team"
|
||||
msgstr "équipe"
|
||||
|
||||
#: apps/participation/models.py:111
|
||||
#: apps/participation/models.py:100
|
||||
msgid "teams"
|
||||
msgstr "équipes"
|
||||
|
||||
#: apps/participation/models.py:129
|
||||
#: apps/participation/models.py:118
|
||||
#, python-brace-format
|
||||
msgid "Problem #{problem:d}"
|
||||
msgstr "Problème n°{problem:d}"
|
||||
|
||||
#: apps/participation/models.py:139 apps/participation/models.py:193
|
||||
#: apps/participation/models.py:128 apps/participation/models.py:182
|
||||
msgid "The video got the validation of the administrators."
|
||||
msgstr "La vidéo a été validée par les administrateurs."
|
||||
|
||||
#: apps/participation/models.py:148
|
||||
#: apps/participation/models.py:137
|
||||
msgid "solution video"
|
||||
msgstr "vidéo de solution"
|
||||
|
||||
#: apps/participation/models.py:157
|
||||
#: apps/participation/models.py:146
|
||||
msgid "received participation"
|
||||
msgstr "participation reçue"
|
||||
|
||||
#: apps/participation/models.py:166
|
||||
#: apps/participation/models.py:155
|
||||
msgid "synthesis video"
|
||||
msgstr "vidéo de synthèse"
|
||||
|
||||
#: apps/participation/models.py:173
|
||||
#: apps/participation/models.py:162
|
||||
#, python-brace-format
|
||||
msgid "Participation of the team {name} ({trigram})"
|
||||
msgstr "Participation de l'équipe {name} ({trigram})"
|
||||
|
||||
#: apps/participation/models.py:176 apps/participation/models.py:250
|
||||
#: apps/participation/models.py:165 apps/participation/models.py:239
|
||||
msgid "participation"
|
||||
msgstr "participation"
|
||||
|
||||
#: apps/participation/models.py:177
|
||||
#: apps/participation/models.py:166
|
||||
msgid "participations"
|
||||
msgstr "participations"
|
||||
|
||||
#: apps/participation/models.py:185
|
||||
#: apps/participation/models.py:174
|
||||
msgid "link"
|
||||
msgstr "lien"
|
||||
|
||||
#: apps/participation/models.py:186
|
||||
#: apps/participation/models.py:175
|
||||
msgid "The full video link."
|
||||
msgstr "Le lien complet de la vidéo."
|
||||
|
||||
#: apps/participation/models.py:235
|
||||
#: apps/participation/models.py:224
|
||||
#, python-brace-format
|
||||
msgid "Video of team {name} ({trigram})"
|
||||
msgstr "Vidéo de l'équipe {name} ({trigram})"
|
||||
|
||||
#: apps/participation/models.py:239
|
||||
#: apps/participation/models.py:228
|
||||
msgid "video"
|
||||
msgstr "vidéo"
|
||||
|
||||
#: apps/participation/models.py:240
|
||||
#: apps/participation/models.py:229
|
||||
msgid "videos"
|
||||
msgstr "vidéos"
|
||||
|
||||
#: apps/participation/models.py:255
|
||||
#: apps/participation/models.py:244
|
||||
msgid "question"
|
||||
msgstr "question"
|
||||
|
||||
#: apps/participation/models.py:269
|
||||
#: apps/participation/models.py:258
|
||||
msgid "phase number"
|
||||
msgstr "phase"
|
||||
|
||||
#: apps/participation/models.py:274
|
||||
#: apps/participation/models.py:263
|
||||
msgid "phase description"
|
||||
msgstr "description"
|
||||
|
||||
#: apps/participation/models.py:278
|
||||
#: apps/participation/models.py:267
|
||||
msgid "start date of the given phase"
|
||||
msgstr "début de la phase"
|
||||
|
||||
#: apps/participation/models.py:283
|
||||
#: apps/participation/models.py:272
|
||||
msgid "end date of the given phase"
|
||||
msgstr "fin de la phase"
|
||||
|
||||
#: apps/participation/models.py:299
|
||||
#: apps/participation/models.py:290
|
||||
msgid ""
|
||||
"Phase {phase_number:d} starts on {start:%Y-%m-%d %H:%M} and ends on {end:%Y-"
|
||||
"%m-%d %H:%M}"
|
||||
|
@ -281,21 +281,21 @@ msgstr ""
|
|||
"Phase {phase_number:d} démarrant le {start:%d/%m/%Y %H:%M} et finissant le "
|
||||
"{end:%d/%m/%Y %H:%M}"
|
||||
|
||||
#: apps/participation/models.py:303
|
||||
#: apps/participation/models.py:294
|
||||
msgid "phase"
|
||||
msgstr "phase"
|
||||
|
||||
#: apps/participation/models.py:304
|
||||
#: apps/participation/models.py:295
|
||||
msgid "phases"
|
||||
msgstr "phases"
|
||||
|
||||
#: apps/participation/templates/participation/create_team.html:11
|
||||
#: corres2math/templates/base.html:233
|
||||
#: corres2math/templates/base.html:237
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
|
||||
#: apps/participation/templates/participation/join_team.html:11
|
||||
#: corres2math/templates/base.html:229
|
||||
#: corres2math/templates/base.html:232
|
||||
msgid "Join"
|
||||
msgstr "Rejoindre"
|
||||
|
||||
|
@ -469,7 +469,7 @@ msgstr "Définir l'équipe qui recevra votre vidéo"
|
|||
|
||||
#: apps/participation/templates/participation/participation_detail.html:181
|
||||
#: apps/participation/templates/participation/participation_detail.html:233
|
||||
#: apps/participation/views.py:490
|
||||
#: apps/participation/views.py:494
|
||||
msgid "Upload video"
|
||||
msgstr "Envoyer la vidéo"
|
||||
|
||||
|
@ -504,7 +504,7 @@ msgid "Update question"
|
|||
msgstr "Modifier la question"
|
||||
|
||||
#: apps/participation/templates/participation/participation_detail.html:217
|
||||
#: apps/participation/views.py:466
|
||||
#: apps/participation/views.py:470
|
||||
msgid "Delete question"
|
||||
msgstr "Supprimer la question"
|
||||
|
||||
|
@ -514,8 +514,8 @@ msgid "Display synthesis"
|
|||
msgstr "Afficher la synthèse"
|
||||
|
||||
#: apps/participation/templates/participation/phase_list.html:10
|
||||
#: apps/participation/views.py:509 corres2math/templates/base.html:68
|
||||
#: corres2math/templates/base.html:70 corres2math/templates/base.html:219
|
||||
#: apps/participation/views.py:513 corres2math/templates/base.html:68
|
||||
#: corres2math/templates/base.html:70 corres2math/templates/base.html:221
|
||||
msgid "Calendar"
|
||||
msgstr "Calendrier"
|
||||
|
||||
|
@ -627,7 +627,7 @@ msgid "Update team"
|
|||
msgstr "Modifier l'équipe"
|
||||
|
||||
#: apps/participation/templates/participation/team_detail.html:127
|
||||
#: apps/participation/views.py:319
|
||||
#: apps/participation/views.py:323
|
||||
msgid "Leave team"
|
||||
msgstr "Quitter l'équipe"
|
||||
|
||||
|
@ -635,8 +635,13 @@ msgstr "Quitter l'équipe"
|
|||
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:36 corres2math/templates/base.html:77
|
||||
#: corres2math/templates/base.html:232
|
||||
#: apps/participation/templates/participation/team_list.html:6
|
||||
#: corres2math/templates/base.html:225
|
||||
msgid "All teams"
|
||||
msgstr "Toutes les équipes"
|
||||
|
||||
#: apps/participation/views.py:36 corres2math/templates/base.html:81
|
||||
#: corres2math/templates/base.html:236
|
||||
msgid "Create team"
|
||||
msgstr "Créer une équipe"
|
||||
|
||||
|
@ -648,36 +653,36 @@ msgstr "Vous ne participez pas, vous ne pouvez pas créer d'équipe."
|
|||
msgid "You are already in a team."
|
||||
msgstr "Vous êtes déjà dans une équipe."
|
||||
|
||||
#: apps/participation/views.py:82 corres2math/templates/base.html:82
|
||||
#: corres2math/templates/base.html:228
|
||||
#: apps/participation/views.py:82 corres2math/templates/base.html:86
|
||||
#: corres2math/templates/base.html:231
|
||||
msgid "Join team"
|
||||
msgstr "Rejoindre une équipe"
|
||||
|
||||
#: apps/participation/views.py:133 apps/participation/views.py:325
|
||||
#: apps/participation/views.py:358
|
||||
#: apps/participation/views.py:142 apps/participation/views.py:329
|
||||
#: apps/participation/views.py:362
|
||||
msgid "You are not in a team."
|
||||
msgstr "Vous n'êtes pas dans une équipe."
|
||||
|
||||
#: apps/participation/views.py:134 apps/participation/views.py:359
|
||||
#: apps/participation/views.py:143 apps/participation/views.py:363
|
||||
msgid "You don't participate, so you don't have any team."
|
||||
msgstr "Vous ne participez pas, vous n'avez donc pas d'équipe."
|
||||
|
||||
#: apps/participation/views.py:156
|
||||
#: apps/participation/views.py:165
|
||||
#, python-brace-format
|
||||
msgid "Detail of team {trigram}"
|
||||
msgstr "Détails de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:188
|
||||
#: apps/participation/views.py:197
|
||||
msgid "You don't participate, so you can't request the validation of the team."
|
||||
msgstr ""
|
||||
"Vous ne participez pas, vous ne pouvez pas demander la validation de "
|
||||
"l'équipe."
|
||||
|
||||
#: apps/participation/views.py:191
|
||||
#: apps/participation/views.py:200
|
||||
msgid "The validation of the team is already done or pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: apps/participation/views.py:194
|
||||
#: apps/participation/views.py:203
|
||||
msgid ""
|
||||
"The team can't be validated: missing email address confirmations, photo "
|
||||
"authorizations, people or the chosen problem is not set."
|
||||
|
@ -686,51 +691,51 @@ msgstr ""
|
|||
"d'adresse e-mail, soit une autorisation parentale, soit des personnes soit "
|
||||
"le problème n'a pas été choisi."
|
||||
|
||||
#: apps/participation/views.py:213
|
||||
#: apps/participation/views.py:222
|
||||
msgid "You are not an administrator."
|
||||
msgstr "Vous n'êtes pas administrateur."
|
||||
|
||||
#: apps/participation/views.py:216
|
||||
#: apps/participation/views.py:225
|
||||
msgid "This team has no pending validation."
|
||||
msgstr "L'équipe n'a pas de validation en attente."
|
||||
|
||||
#: apps/participation/views.py:240
|
||||
#: apps/participation/views.py:244
|
||||
msgid "You must specify if you validate the registration or not."
|
||||
msgstr "Vous devez spécifier si vous validez l'inscription ou non."
|
||||
|
||||
#: apps/participation/views.py:268
|
||||
#: apps/participation/views.py:272
|
||||
#, python-brace-format
|
||||
msgid "Update team {trigram}"
|
||||
msgstr "Mise à jour de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:305 apps/registration/views.py:253
|
||||
#: apps/participation/views.py:309 apps/registration/views.py:243
|
||||
#, python-brace-format
|
||||
msgid "Photo authorization of {student}.{ext}"
|
||||
msgstr "Autorisation de droit à l'image de {student}.{ext}"
|
||||
|
||||
#: apps/participation/views.py:309
|
||||
#: apps/participation/views.py:313
|
||||
#, python-brace-format
|
||||
msgid "Photo authorizations of team {trigram}.zip"
|
||||
msgstr "Autorisations de droit à l'image de l'équipe {trigram}.zip"
|
||||
|
||||
#: apps/participation/views.py:327
|
||||
#: apps/participation/views.py:331
|
||||
msgid "The team is already validated or the validation is pending."
|
||||
msgstr "La validation de l'équipe est déjà faite ou en cours."
|
||||
|
||||
#: apps/participation/views.py:371
|
||||
#: apps/participation/views.py:375
|
||||
msgid "The team is not validated yet."
|
||||
msgstr "L'équipe n'est pas encore validée."
|
||||
|
||||
#: apps/participation/views.py:381
|
||||
#: apps/participation/views.py:385
|
||||
#, python-brace-format
|
||||
msgid "Participation of team {trigram}"
|
||||
msgstr "Participation de l'équipe {trigram}"
|
||||
|
||||
#: apps/participation/views.py:418
|
||||
#: apps/participation/views.py:422
|
||||
msgid "Create question"
|
||||
msgstr "Créer une question"
|
||||
|
||||
#: apps/participation/views.py:518
|
||||
#: apps/participation/views.py:522
|
||||
msgid "Calendar update"
|
||||
msgstr "Mise à jour du calendrier"
|
||||
|
||||
|
@ -923,8 +928,8 @@ msgid "Your password has been set. You may go ahead and log in now."
|
|||
msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
|
||||
|
||||
#: apps/registration/templates/registration/password_reset_complete.html:10
|
||||
#: corres2math/templates/base.html:132 corres2math/templates/base.html:223
|
||||
#: corres2math/templates/base.html:224
|
||||
#: corres2math/templates/base.html:134 corres2math/templates/base.html:241
|
||||
#: corres2math/templates/base.html:242
|
||||
#: corres2math/templates/registration/login.html:7
|
||||
#: corres2math/templates/registration/login.html:8
|
||||
#: corres2math/templates/registration/login.html:25
|
||||
|
@ -1161,43 +1166,47 @@ msgstr ""
|
|||
msgid "Home"
|
||||
msgstr "Accueil"
|
||||
|
||||
#: corres2math/templates/base.html:88
|
||||
#: corres2math/templates/base.html:75
|
||||
msgid "Teams"
|
||||
msgstr "Équipes"
|
||||
|
||||
#: corres2math/templates/base.html:92
|
||||
msgid "My team"
|
||||
msgstr "Mon équipe"
|
||||
|
||||
#: corres2math/templates/base.html:93
|
||||
#: corres2math/templates/base.html:97
|
||||
msgid "My participation"
|
||||
msgstr "Ma participation"
|
||||
|
||||
#: corres2math/templates/base.html:100
|
||||
#: corres2math/templates/base.html:104
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: corres2math/templates/base.html:104
|
||||
#: corres2math/templates/base.html:108
|
||||
msgid "Administration"
|
||||
msgstr "Administration"
|
||||
|
||||
#: corres2math/templates/base.html:112
|
||||
#: corres2math/templates/base.html:116
|
||||
msgid "Search..."
|
||||
msgstr "Chercher ..."
|
||||
|
||||
#: corres2math/templates/base.html:121
|
||||
#: corres2math/templates/base.html:125
|
||||
msgid "Return to admin view"
|
||||
msgstr "Retourner à l'interface administrateur"
|
||||
|
||||
#: corres2math/templates/base.html:127
|
||||
#: corres2math/templates/base.html:130
|
||||
msgid "Register"
|
||||
msgstr "S'inscrire"
|
||||
|
||||
#: corres2math/templates/base.html:144
|
||||
#: corres2math/templates/base.html:146
|
||||
msgid "My account"
|
||||
msgstr "Mon compte"
|
||||
|
||||
#: corres2math/templates/base.html:147
|
||||
#: corres2math/templates/base.html:149
|
||||
msgid "Log out"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: corres2math/templates/base.html:164
|
||||
#: corres2math/templates/base.html:166
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Your email address is not validated. Please click on the link you received "
|
||||
|
@ -1208,11 +1217,11 @@ msgstr ""
|
|||
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a href="
|
||||
"\"%(send_email_url)s\">ce lien</a>."
|
||||
|
||||
#: corres2math/templates/base.html:188
|
||||
#: corres2math/templates/base.html:190
|
||||
msgid "Contact us"
|
||||
msgstr "Nous contacter"
|
||||
|
||||
#: corres2math/templates/base.html:221
|
||||
#: corres2math/templates/base.html:228
|
||||
msgid "Search results"
|
||||
msgstr "Résultats de la recherche"
|
||||
|
||||
|
|
Loading…
Reference in New Issue