Files
django-dav-events/dav_events/emails.py
2021-01-07 12:52:21 +01:00

134 lines
4.8 KiB
Python

# -*- coding: utf-8 -*-
from dav_base.emails import AbstractMail
class AbstractEventMail(AbstractMail):
_template_name = 'dav_events/emails/default.txt'
def __init__(self, recipient, event):
self._recipient = recipient
self._event = event
def _get_subject(self, subject_fmt=None, **kwargs):
if subject_fmt is None:
subject_fmt = self._subject
if self._event.number:
subject_fmt = u'%s: %s' % (self._event.number, subject_fmt)
return super(AbstractEventMail, self)._get_subject(subject_fmt=subject_fmt, **kwargs)
def _get_recipients(self):
r = u'"{fullname}" <{email}>'.format(fullname=self._recipient.get_full_name(),
email=self._recipient.email)
return [r]
def _get_context_data(self, extra_context=None):
context = super(AbstractEventMail, self)._get_context_data(extra_context=extra_context)
context['recipient'] = self._recipient
context.update(self._event.get_template_context())
return context
class EventUpdatedMail(AbstractEventMail):
_subject = u'Veranstaltung geändert'
_template_name = 'dav_events/emails/event_updated.txt'
def __init__(self, editor=None, diff=None, *args, **kwargs):
self._editor = editor
self._diff = diff
super(EventUpdatedMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventUpdatedMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
context['diff'] = self._diff
return context
class EventSubmittedMail(AbstractEventMail):
_subject = u'Veranstaltung eingereicht'
_template_name = 'dav_events/emails/event_submitted.txt'
class EventToAcceptMail(AbstractEventMail):
_subject = u'Veranstaltung freigeben'
_template_name = 'dav_events/emails/event_to_accept.txt'
def __init__(self, accept_action=None, *args, **kwargs):
self._accept_action = accept_action
super(EventToAcceptMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventToAcceptMail, self)._get_context_data(extra_context=extra_context)
context['accept_url'] = self._accept_action.get_absolute_url()
return context
class EventAcceptedMail(AbstractEventMail):
_subject = u'Veranstaltung freigegeben'
_template_name = 'dav_events/emails/event_accepted.txt'
def __init__(self, editor=None, *args, **kwargs):
self._editor = editor
super(EventAcceptedMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventAcceptedMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
return context
class EventToPublishMail(AbstractEventMail):
_subject = u'Veranstaltung veröffentlichen'
_template_name = 'dav_events/emails/event_to_publish.txt'
def __init__(self, editor=None, confirm_publication_action=None, *args, **kwargs):
self._editor = editor
self._confirm_publication_action = confirm_publication_action
super(EventToPublishMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventToPublishMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
context['confirm_publication_url'] = self._confirm_publication_action.get_absolute_url()
return context
class EventToPublishWebMail(EventToPublishMail):
_template_name = 'dav_events/emails/event_to_publish_web.txt'
class EventToPublishFacebookMail(EventToPublishMail):
_template_name = 'dav_events/emails/event_to_publish_facebook.txt'
class EventRegistrationClosedMail(AbstractEventMail):
_subject = u'Anmeldung geschlossen'
_template_name = 'dav_events/emails/event_registration_closed.txt'
def __init__(self, editor=None, *args, **kwargs):
self._editor = editor
super(EventRegistrationClosedMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventRegistrationClosedMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
return context
class EventCanceledMail(AbstractEventMail):
_subject = u'Veranstaltung abgesagt'
_template_name = 'dav_events/emails/event_canceled.txt'
def __init__(self, editor=None, *args, **kwargs):
self._editor = editor
super(EventCanceledMail, self).__init__(*args, **kwargs)
def _get_context_data(self, extra_context=None):
context = super(EventCanceledMail, self)._get_context_data(extra_context=extra_context)
context['editor'] = self._editor
return context