From 88596ea1b5a0b1f0010ff2312048a115102decfa Mon Sep 17 00:00:00 2001 From: Jens Kleineheismann Date: Thu, 25 Jan 2018 13:21:20 +0100 Subject: [PATCH] Fixed wrong url in email templates. --- dav_events/config.py | 2 +- dav_events/emails.py | 41 ++++++++++++------- .../dav_events/emails/password_set.txt | 2 +- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/dav_events/config.py b/dav_events/config.py index d4c8c39..02e6c94 100644 --- a/dav_events/config.py +++ b/dav_events/config.py @@ -4,7 +4,7 @@ from django.utils.translation import ugettext_lazy as _ # E-Mails ENABLE_EMAIL_NOTIFICATIONS = False EMAIL_SENDER = 'Jens Kleineheismann ' -BASE_URL = 'http://localhost:8000' +EMAIL_BASE_URL = 'http://localhost:8000' # Auth Config MANAGE_ALL_GROUP = 'Tourenreferenten' diff --git a/dav_events/emails.py b/dav_events/emails.py index 10e592f..703e437 100644 --- a/dav_events/emails.py +++ b/dav_events/emails.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import logging +from django.core.exceptions import ImproperlyConfigured from django.core.mail import EmailMessage from django.template.loader import get_template @@ -37,12 +38,28 @@ def get_recipients(task, sport=None): class AbstractMail(object): _sender = config.EMAIL_SENDER _subject = 'Generic Mail' + _template_name = None def _get_subject(self, **kwargs): return self._subject.format(**kwargs) + def _get_template(self): + if not self._template_name: + raise ImproperlyConfigured('%s._template_name ist not set.', self.__class__.__name__) + return get_template(self._template_name) + + def _get_context_data(self, extra_context=None): + context = { + 'base_url': config.EMAIL_BASE_URL, + } + if extra_context: + context.update(extra_context) + return context + def _get_body(self): - raise NotImplementedError() + template = self._get_template() + context = self._get_context_data() + return template.render(context) def _get_recipients(self): raise NotImplementedError() @@ -67,14 +84,10 @@ class AbstractEventMail(AbstractMail): def __init__(self, event): self._event = event - def _get_body(self): - template_name = self._template_name - template = get_template(template_name) - context = { - 'base_url': config.BASE_URL, - } + def _get_context_data(self, extra_context=None): + context = super(AbstractEventMail, self)._get_context_data(extra_context=extra_context) context.update(self._event.get_template_context()) - return template.render(context) + return context class NewEventMail(AbstractEventMail): @@ -142,13 +155,11 @@ class PasswordSetEmail(AbstractMail): email=self._user.email) return [r] - def _get_body(self): - template_name = self._template_name - template = get_template(template_name) - context = { - 'base_url': config.BASE_URL, + def _get_context_data(self, extra_context=None): + context = super(PasswordSetEmail, self)._get_context_data(extra_context=extra_context) + context.update({ 'fullname': self._user.get_full_name(), 'username': self._user.username, 'password': self._password - } - return template.render(context) + }) + return context diff --git a/dav_events/templates/dav_events/emails/password_set.txt b/dav_events/templates/dav_events/emails/password_set.txt index e4b79c4..ffbb183 100644 --- a/dav_events/templates/dav_events/emails/password_set.txt +++ b/dav_events/templates/dav_events/emails/password_set.txt @@ -3,4 +3,4 @@ Hallo {{ fullname }}, Benutzername: {{ username }} Passwort: {{ password }} -URL: {{ base_url }} +URL: {{ base_url }}{% url 'dav_events:home' %}