# -*- 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