mirror of
				https://gitlab.com/animath/si/plateforme-corres2math.git
				synced 2025-11-04 16:02:31 +01:00 
			
		
		
		
	Add calendar view
This commit is contained in:
		@@ -1,7 +1,23 @@
 | 
				
			|||||||
 | 
					from django.utils import timezone
 | 
				
			||||||
from django.utils.translation import gettext_lazy as _
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
import django_tables2 as tables
 | 
					import django_tables2 as tables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .models import Team
 | 
					from .models import Phase, Team
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CalendarTable(tables.Table):
 | 
				
			||||||
 | 
					    class Meta:
 | 
				
			||||||
 | 
					        attrs = {
 | 
				
			||||||
 | 
					            'class': 'table table condensed table-striped',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        row_attrs = {
 | 
				
			||||||
 | 
					            'class': lambda record: 'bg-success' if timezone.now() > record.end else
 | 
				
			||||||
 | 
					                                    'bg-waring' if timezone.now() > record.start else
 | 
				
			||||||
 | 
					                                    'bg-danger'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        model = Phase
 | 
				
			||||||
 | 
					        fields = ('phase_number', 'description', 'start', 'end',)
 | 
				
			||||||
 | 
					        template_name = 'django_tables2/bootstrap4.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# noinspection PyTypeChecker
 | 
					# noinspection PyTypeChecker
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								apps/participation/templates/participation/phase_list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								apps/participation/templates/participation/phase_list.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% load django_tables2 i18n %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block contenttitle %}
 | 
				
			||||||
 | 
					    <h2>{% trans "Calendar" %}</h2>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block content %}
 | 
				
			||||||
 | 
					    {% render_table table %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
from django.urls import path
 | 
					from django.urls import path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .views import CreateTeamView, JoinTeamView, MyParticipationDetailView, MyTeamDetailView, ParticipationDetailView,\
 | 
					from .views import CalendarView, CreateTeamView, JoinTeamView, MyParticipationDetailView, MyTeamDetailView, \
 | 
				
			||||||
    TeamAuthorizationsView, TeamDetailView, TeamUpdateView, UploadVideoView
 | 
					    ParticipationDetailView,TeamAuthorizationsView, TeamDetailView, TeamUpdateView, UploadVideoView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app_name = "participation"
 | 
					app_name = "participation"
 | 
				
			||||||
@@ -16,4 +16,5 @@ urlpatterns = [
 | 
				
			|||||||
    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"),
 | 
				
			||||||
 | 
					    path("calendar/", CalendarView.as_view(), name="calendar"),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,12 +13,14 @@ from django.urls import reverse_lazy
 | 
				
			|||||||
from django.utils.translation import gettext_lazy as _
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
from django.views.generic import CreateView, DetailView, FormView, RedirectView, UpdateView
 | 
					from django.views.generic import CreateView, DetailView, FormView, RedirectView, UpdateView
 | 
				
			||||||
from django.views.generic.edit import FormMixin, ProcessFormView
 | 
					from django.views.generic.edit import FormMixin, ProcessFormView
 | 
				
			||||||
 | 
					from django_tables2 import SingleTableView
 | 
				
			||||||
from magic import Magic
 | 
					from magic import Magic
 | 
				
			||||||
from registration.models import AdminRegistration
 | 
					from registration.models import AdminRegistration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .forms import JoinTeamForm, ParticipationForm, RequestValidationForm, TeamForm, UploadVideoForm,\
 | 
					from .forms import JoinTeamForm, ParticipationForm, RequestValidationForm, TeamForm, UploadVideoForm,\
 | 
				
			||||||
    ValidateParticipationForm
 | 
					    ValidateParticipationForm
 | 
				
			||||||
from .models import Participation, Team, Video
 | 
					from .models import Participation, Phase, Team, Video
 | 
				
			||||||
 | 
					from .tables import CalendarTable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CreateTeamView(LoginRequiredMixin, CreateView):
 | 
					class CreateTeamView(LoginRequiredMixin, CreateView):
 | 
				
			||||||
@@ -274,3 +276,8 @@ class UploadVideoView(LoginRequiredMixin, UpdateView):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def get_success_url(self):
 | 
					    def get_success_url(self):
 | 
				
			||||||
        return reverse_lazy("participation:participation_detail", args=(self.object.participation.pk,))
 | 
					        return reverse_lazy("participation:participation_detail", args=(self.object.participation.pk,))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CalendarView(SingleTableView):
 | 
				
			||||||
 | 
					    table_class = CalendarTable
 | 
				
			||||||
 | 
					    model = Phase
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 12:54+0200\n"
 | 
					"POT-Creation-Date: 2020-10-20 13:03+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"
 | 
				
			||||||
@@ -115,12 +115,12 @@ msgstr "Je m'engage à participer à l'intégralité des Correspondances."
 | 
				
			|||||||
msgid "Message to address to the team:"
 | 
					msgid "Message to address to the team:"
 | 
				
			||||||
msgstr "Message à adresser à l'équipe :"
 | 
					msgstr "Message à adresser à l'équipe :"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:18 apps/participation/tables.py:12
 | 
					#: apps/participation/models.py:18 apps/participation/tables.py:22
 | 
				
			||||||
#: apps/participation/tables.py:34 apps/participation/tables.py:60
 | 
					#: apps/participation/tables.py:44 apps/participation/tables.py:70
 | 
				
			||||||
msgid "name"
 | 
					msgid "name"
 | 
				
			||||||
msgstr "nom"
 | 
					msgstr "nom"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:24 apps/participation/tables.py:39
 | 
					#: apps/participation/models.py:24 apps/participation/tables.py:49
 | 
				
			||||||
msgid "trigram"
 | 
					msgid "trigram"
 | 
				
			||||||
msgstr "trigramme"
 | 
					msgstr "trigramme"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -163,8 +163,8 @@ msgstr "équipes"
 | 
				
			|||||||
msgid "Problem #{problem:d}"
 | 
					msgid "Problem #{problem:d}"
 | 
				
			||||||
msgstr "Problème n°{problem:d}"
 | 
					msgstr "Problème n°{problem:d}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/models.py:86 apps/participation/tables.py:17
 | 
					#: apps/participation/models.py:86 apps/participation/tables.py:27
 | 
				
			||||||
#: apps/participation/tables.py:44
 | 
					#: apps/participation/tables.py:54
 | 
				
			||||||
msgid "problem number"
 | 
					msgid "problem number"
 | 
				
			||||||
msgstr "numéro de problème"
 | 
					msgstr "numéro de problème"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -255,12 +255,12 @@ msgid "phases"
 | 
				
			|||||||
msgstr "phases"
 | 
					msgstr "phases"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/create_team.html:11
 | 
					#: apps/participation/templates/participation/create_team.html:11
 | 
				
			||||||
#: templates/base.html:220
 | 
					#: templates/base.html:223
 | 
				
			||||||
msgid "Create"
 | 
					msgid "Create"
 | 
				
			||||||
msgstr "Créer"
 | 
					msgstr "Créer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/join_team.html:11
 | 
					#: apps/participation/templates/participation/join_team.html:11
 | 
				
			||||||
#: templates/base.html:216
 | 
					#: templates/base.html:219
 | 
				
			||||||
msgid "Join"
 | 
					msgid "Join"
 | 
				
			||||||
msgstr "Rejoindre"
 | 
					msgstr "Rejoindre"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -311,6 +311,11 @@ msgstr "La plateforme de cette vidéo n'est pas encore supportée."
 | 
				
			|||||||
msgid "Upload video"
 | 
					msgid "Upload video"
 | 
				
			||||||
msgstr "Envoyer la vidéo"
 | 
					msgstr "Envoyer la vidéo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: apps/participation/templates/participation/phase_list.html:6
 | 
				
			||||||
 | 
					#: templates/base.html:67
 | 
				
			||||||
 | 
					msgid "Calendar"
 | 
				
			||||||
 | 
					msgstr "Calendrier"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/templates/participation/team_detail.html:14
 | 
					#: apps/participation/templates/participation/team_detail.html:14
 | 
				
			||||||
msgid "Name:"
 | 
					msgid "Name:"
 | 
				
			||||||
msgstr "Nom :"
 | 
					msgstr "Nom :"
 | 
				
			||||||
@@ -404,65 +409,65 @@ msgstr "Invalider"
 | 
				
			|||||||
msgid "Update team"
 | 
					msgid "Update team"
 | 
				
			||||||
msgstr "Modifier l'équipe"
 | 
					msgstr "Modifier l'équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:27 templates/base.html:70
 | 
					#: apps/participation/views.py:29 templates/base.html:73
 | 
				
			||||||
#: templates/base.html:219
 | 
					#: templates/base.html:222
 | 
				
			||||||
msgid "Create team"
 | 
					msgid "Create team"
 | 
				
			||||||
msgstr "Créer une équipe"
 | 
					msgstr "Créer une équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:34 apps/participation/views.py:64
 | 
					#: apps/participation/views.py:36 apps/participation/views.py:66
 | 
				
			||||||
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:36 apps/participation/views.py:66
 | 
					#: apps/participation/views.py:38 apps/participation/views.py:68
 | 
				
			||||||
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:57 templates/base.html:75
 | 
					#: apps/participation/views.py:59 templates/base.html:78
 | 
				
			||||||
#: templates/base.html:215
 | 
					#: templates/base.html:218
 | 
				
			||||||
msgid "Join team"
 | 
					msgid "Join team"
 | 
				
			||||||
msgstr "Rejoindre une équipe"
 | 
					msgstr "Rejoindre une équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/participation/views.py:92 apps/participation/views.py:246
 | 
					#: apps/participation/views.py:94 apps/participation/views.py:248
 | 
				
			||||||
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:93 apps/participation/views.py:247
 | 
					#: apps/participation/views.py:95 apps/participation/views.py:249
 | 
				
			||||||
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:132
 | 
					#: apps/participation/views.py:134
 | 
				
			||||||
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:135
 | 
					#: apps/participation/views.py:137
 | 
				
			||||||
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:148
 | 
					#: apps/participation/views.py:150
 | 
				
			||||||
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:151
 | 
					#: apps/participation/views.py:153
 | 
				
			||||||
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:173
 | 
					#: 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:230 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:234
 | 
					#: 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:256
 | 
					#: apps/participation/views.py:258
 | 
				
			||||||
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."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -655,7 +660,7 @@ 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."
 | 
					msgstr "Votre mot de passe a été changé. Vous pouvez désormais vous connecter."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: apps/registration/templates/registration/password_reset_complete.html:10
 | 
					#: apps/registration/templates/registration/password_reset_complete.html:10
 | 
				
			||||||
#: templates/base.html:123 templates/base.html:210 templates/base.html:211
 | 
					#: templates/base.html:126 templates/base.html:213 templates/base.html:214
 | 
				
			||||||
#: templates/registration/login.html:7 templates/registration/login.html:8
 | 
					#: templates/registration/login.html:7 templates/registration/login.html:8
 | 
				
			||||||
#: templates/registration/login.html:25
 | 
					#: templates/registration/login.html:25
 | 
				
			||||||
msgid "Log in"
 | 
					msgid "Log in"
 | 
				
			||||||
@@ -883,43 +888,43 @@ msgstr ""
 | 
				
			|||||||
msgid "Home"
 | 
					msgid "Home"
 | 
				
			||||||
msgstr "Accueil"
 | 
					msgstr "Accueil"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:81
 | 
					#: templates/base.html:84
 | 
				
			||||||
msgid "My team"
 | 
					msgid "My team"
 | 
				
			||||||
msgstr "Mon équipe"
 | 
					msgstr "Mon équipe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:86
 | 
					#: templates/base.html:89
 | 
				
			||||||
msgid "My participation"
 | 
					msgid "My participation"
 | 
				
			||||||
msgstr "Ma participation"
 | 
					msgstr "Ma participation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:93
 | 
					#: templates/base.html:96
 | 
				
			||||||
msgid "Make a gift"
 | 
					msgid "Make a gift"
 | 
				
			||||||
msgstr "Faire un don"
 | 
					msgstr "Faire un don"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:97
 | 
					#: templates/base.html:100
 | 
				
			||||||
msgid "Administration"
 | 
					msgid "Administration"
 | 
				
			||||||
msgstr "Administration"
 | 
					msgstr "Administration"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:105
 | 
					#: templates/base.html:108
 | 
				
			||||||
msgid "Search..."
 | 
					msgid "Search..."
 | 
				
			||||||
msgstr "Chercher ..."
 | 
					msgstr "Chercher ..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:114
 | 
					#: templates/base.html:117
 | 
				
			||||||
msgid "Return to admin view"
 | 
					msgid "Return to admin view"
 | 
				
			||||||
msgstr "Retourner à l'interface administrateur"
 | 
					msgstr "Retourner à l'interface administrateur"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:119
 | 
					#: templates/base.html:122
 | 
				
			||||||
msgid "Register"
 | 
					msgid "Register"
 | 
				
			||||||
msgstr "S'inscrire"
 | 
					msgstr "S'inscrire"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:135
 | 
					#: templates/base.html:138
 | 
				
			||||||
msgid "My account"
 | 
					msgid "My account"
 | 
				
			||||||
msgstr "Mon compte"
 | 
					msgstr "Mon compte"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:138
 | 
					#: templates/base.html:141
 | 
				
			||||||
msgid "Log out"
 | 
					msgid "Log out"
 | 
				
			||||||
msgstr "Déconnexion"
 | 
					msgstr "Déconnexion"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:154
 | 
					#: templates/base.html:157
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Your email address is not validated. Please click on the link you received "
 | 
					"Your email address is not validated. Please click on the link you received "
 | 
				
			||||||
@@ -930,11 +935,11 @@ msgstr ""
 | 
				
			|||||||
"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a href="
 | 
					"avez reçu par mail. Vous pouvez renvoyer un mail en cliquant sur <a href="
 | 
				
			||||||
"\"%(send_email_url)s\">ce lien</a>."
 | 
					"\"%(send_email_url)s\">ce lien</a>."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:177
 | 
					#: templates/base.html:180
 | 
				
			||||||
msgid "Contact us"
 | 
					msgid "Contact us"
 | 
				
			||||||
msgstr "Nous contacter"
 | 
					msgstr "Nous contacter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: templates/base.html:208
 | 
					#: templates/base.html:211
 | 
				
			||||||
msgid "Search results"
 | 
					msgid "Search results"
 | 
				
			||||||
msgstr "Résultats de la recherche"
 | 
					msgstr "Résultats de la recherche"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,6 +63,9 @@
 | 
				
			|||||||
                <li class="nav-item active">
 | 
					                <li class="nav-item active">
 | 
				
			||||||
                    <a href="{% url "index" %}" class="nav-link"><i class="fas fa-home"></i> {% trans "Home" %}</a>
 | 
					                    <a href="{% url "index" %}" class="nav-link"><i class="fas fa-home"></i> {% trans "Home" %}</a>
 | 
				
			||||||
                </li>
 | 
					                </li>
 | 
				
			||||||
 | 
					                <li class="nav-item active">
 | 
				
			||||||
 | 
					                    <a href="{% url "participation:calendar" %}" class="nav-link"><i class="fas fa-calendar"></i> {% trans "Calendar" %}</a>
 | 
				
			||||||
 | 
					                </li>
 | 
				
			||||||
                {% if user.is_authenticated and user.registration.participates %}
 | 
					                {% if user.is_authenticated and user.registration.participates %}
 | 
				
			||||||
                    {% if not user.registration.team %}
 | 
					                    {% if not user.registration.team %}
 | 
				
			||||||
                        <li class="nav-item active">
 | 
					                        <li class="nav-item active">
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user