Skip to content
Snippets Groups Projects
Commit f17417e7 authored by florimondmanca's avatar florimondmanca
Browse files

force usage of French in emails

parent 12b298ef
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@ from django.template.loader import render_to_string
from django.utils import timezone
from django.utils.html import strip_tags
from django.utils.text import Truncator
from django.utils import translation
from markdown import markdown
......@@ -153,6 +154,7 @@ class Notification:
def render(self) -> str:
"""Render the template and return the notification message body."""
translation.activate('fr_FR') # force usage of French
template = self.get_template()
context = self.get_context()
content = render_to_string(template, context)
......
......@@ -75,10 +75,10 @@ INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + PROJECT_APPS
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.middleware.common.CommonMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
......@@ -99,6 +99,7 @@ TEMPLATES = [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.i18n',
],
},
},
......
......@@ -6,7 +6,7 @@ from tests.utils.mixins import SignalTestMixin
from mails.signals import notification_sent
from users.factory import UserFactory
from visits.factory import ParticipationFactory, VisitFactory
from visits.notifications import Confirm
from visits.notifications import ConfirmParticipation
from visits.signals import accepted_changed
......@@ -30,9 +30,9 @@ class NotifyParticipationTest(SignalTestMixin, TestCase):
ParticipationFactory.create(accepted=True)
def test_notification_sent_is_called_by_confirm(self):
with self.assertCalled(notification_sent, sender=Confirm):
with self.assertCalled(notification_sent, sender=ConfirmParticipation):
self.change(accepted=True)
def test_notification_sent_is_called_by_confirm(self):
with self.assertCalled(notification_sent, sender=Confirm):
with self.assertCalled(notification_sent, sender=ConfirmParticipation):
self.change(accepted=False)
......@@ -22,13 +22,13 @@ class ParticipationCancelled(Notification):
@classmethod
def example(cls):
return cls(user='John Doe',
visit='Visite du Palais de la Découverte',
reason='Je ne peux plus venir...')
user = User(email='john.doe@example.com', first_name='John')
visit = Visit(title='Visite du Palais de la Découverte', date=now())
return cls(user=user, visit=visit, reason='Je ne peux plus venir...')
class Confirm(Notification):
"""Confirm whether a user can participate to a visit."""
class ConfirmParticipation(Notification):
"""ConfirmParticipation whether a user can participate to a visit."""
template_name = 'visits/confirm_participation.md'
args = ('participation',)
......
......@@ -4,7 +4,7 @@ from django.db.models.signals import post_save
from django.dispatch import Signal, receiver
from .models import Participation
from .notifications import Confirm
from .notifications import ConfirmParticipation
accepted_changed = Signal()
......@@ -24,4 +24,4 @@ def notify_participation(sender, instance: Participation, **kwargs):
"""
if instance.accepted is None:
return
Confirm(participation=instance).send()
ConfirmParticipation(participation=instance).send()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment