diff --git a/TODO.txt b/TODO.txt index c65ba58..1cba82c 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,14 +1,14 @@ - Veranstaltungsnummern -- Passwort per Mail zusenden - Anmeldungstext - One-Click-Links in Accept-Mails - Download Veranstaltungsliste - ApproachForm aufteilen - Teilnehmerzahl und Trainerzahl kombinieren -- Besserer Zurück-Button in Formulare - Save as Draft - Edit Event - Copy Event - Tourenreferent managed Gruppen der Subreferenten - Initialtexte und Placeholder von forms in config +- Passwort vergessen Funktion +- Besserer Zurück-Button in Formulare diff --git a/dav_events/emails.py b/dav_events/emails.py index d671b37..5949821 100644 --- a/dav_events/emails.py +++ b/dav_events/emails.py @@ -127,3 +127,28 @@ class EventToPublishMail(AbstractEventMail): def _get_recipients(self): return get_recipients('publish', self._event.sport) + + +class PasswordSetEmail(AbstractMail): + _subject = u'[DAV Veranstaltungen] Zugangsdaten' + _template_name = 'dav_events/emails/password_set.txt' + + def __init__(self, user, password): + self._user = user + self._password = password + + def _get_recipients(self): + r = '{fullname} <{email}>'.format(fullname=self._user.get_full_name(), + 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, + 'fullname': self._user.get_full_name(), + 'username': self._user.username, + 'password': self._password + } + return template.render(context) diff --git a/dav_events/forms/auth.py b/dav_events/forms/auth.py index 84967e7..7349756 100644 --- a/dav_events/forms/auth.py +++ b/dav_events/forms/auth.py @@ -32,7 +32,7 @@ class SetPasswordForm(forms.Form): label=_(u'Neues Passwort wiederholen'), widget=forms.PasswordInput) send_password_mail = forms.BooleanField(required=False, - disabled=True, + initial=False, label=_(u'Neues Passwort per E-Mail zusenden'), ) diff --git a/dav_events/views/auth.py b/dav_events/views/auth.py index d4b666d..335e18a 100644 --- a/dav_events/views/auth.py +++ b/dav_events/views/auth.py @@ -4,6 +4,7 @@ from django.contrib.auth import views as auth_views from django.urls import reverse_lazy from django.utils.translation import ugettext as _ +from .. import emails from .. import forms logger = logging.getLogger(__name__) @@ -41,4 +42,7 @@ class SetPasswordView(auth_views.PasswordChangeView): def form_valid(self, form): r = super(SetPasswordView, self).form_valid(form) messages.success(self.request, _(u'Passwort gespeichert.')) - return r \ No newline at end of file + if form.cleaned_data.get('send_password_mail', False): + email = emails.PasswordSetEmail(self.request.user, form.cleaned_data['new_password']) + email.send() + return r