finished primitive email notifications.
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from django.core.mail import EmailMessage
|
||||
from django.template.loader import get_template
|
||||
|
||||
from . import config
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AbstractMail(object):
|
||||
_sender = config.EMAIL_SENDER
|
||||
_subject = 'Generic Mail'
|
||||
|
||||
def _get_subject(self, **kwargs):
|
||||
@@ -20,41 +26,67 @@ class AbstractMail(object):
|
||||
def send(self):
|
||||
subject = self._get_subject()
|
||||
body = self._get_body()
|
||||
sender = self._sender
|
||||
recipients = self._get_recipients()
|
||||
|
||||
emo = EmailMessage(subject=subject, body=body, to=recipients)
|
||||
emo = EmailMessage(subject=subject, body=body, from_email=sender, to=recipients)
|
||||
logger.debug('sending mail to %s', recipients)
|
||||
emo.send()
|
||||
|
||||
|
||||
class AbstractEventMail(AbstractMail):
|
||||
_subject = 'DAV Events'
|
||||
_subject = u'[DAV Veranstaltungen]'
|
||||
_template_name = 'dav_events/emails/default.txt'
|
||||
|
||||
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,
|
||||
}
|
||||
context.update(self._event.get_template_context())
|
||||
return template.render(context)
|
||||
|
||||
|
||||
class NewEventMail(AbstractEventMail):
|
||||
def get_recipients(self):
|
||||
r = '{fullname} <{email}>'.format(fullname=self._event.owner.get_fullname(),
|
||||
_template_name = 'dav_events/emails/new_event.txt'
|
||||
|
||||
def _get_subject(self, **kwargs):
|
||||
s = super(NewEventMail, self)._get_subject(**kwargs)
|
||||
s += u' Neue Veranstaltung angelegt'
|
||||
return s
|
||||
|
||||
def _get_recipients(self):
|
||||
r = '{fullname} <{email}>'.format(fullname=self._event.owner.get_full_name(),
|
||||
email=self._event.owner.email)
|
||||
return [r]
|
||||
|
||||
|
||||
class NewEventToAcceptMail(AbstractEventMail):
|
||||
def get_recipients(self):
|
||||
class EventToAcceptMail(AbstractEventMail):
|
||||
_template_name = 'dav_events/emails/event_to_accept.txt'
|
||||
|
||||
def _get_subject(self, **kwargs):
|
||||
s = super(EventToAcceptMail, self)._get_subject(**kwargs)
|
||||
s += u' Neue Veranstaltung freigeben'
|
||||
return s
|
||||
|
||||
def _get_recipients(self):
|
||||
recipients = []
|
||||
|
||||
sport = self._event.sport
|
||||
group_var_name = 'MANAGE_{K}_GROUP'.format(sport)
|
||||
group_var_name = 'MANAGE_{}_GROUP'.format(sport)
|
||||
group_name = getattr(config, group_var_name, None)
|
||||
if group_name:
|
||||
try:
|
||||
group = Group.objects.get(name=group_name)
|
||||
for user in group.user_set:
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_fullname(),
|
||||
for user in group.user_set.all():
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_full_name(),
|
||||
email=user.email)
|
||||
recipients.append(r)
|
||||
except Group.DoesNotExists:
|
||||
except Group.DoesNotExist:
|
||||
pass
|
||||
|
||||
group_var_name = 'MANAGE_ALL_GROUP'
|
||||
@@ -62,25 +94,39 @@ class NewEventToAcceptMail(AbstractEventMail):
|
||||
if group_name:
|
||||
try:
|
||||
group = Group.objects.get(name=group_name)
|
||||
for user in group.user_set:
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_fullname(),
|
||||
for user in group.user_set.all():
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_full_name(),
|
||||
email=user.email)
|
||||
recipients.append(r)
|
||||
except Group.DoesNotExists:
|
||||
except Group.DoesNotExist:
|
||||
pass
|
||||
|
||||
return recipients
|
||||
|
||||
|
||||
class EventAcceptedMail(AbstractEventMail):
|
||||
def get_recipients(self):
|
||||
r = '{fullname} <{email}>'.format(fullname=self._event.owner.get_fullname(),
|
||||
_template_name = 'dav_events/emails/event_accepted.txt'
|
||||
|
||||
def _get_subject(self, **kwargs):
|
||||
s = super(EventAcceptedMail, self)._get_subject(**kwargs)
|
||||
s += u' Veranstaltung wurde freigegeben'
|
||||
return s
|
||||
|
||||
def _get_recipients(self):
|
||||
r = '{fullname} <{email}>'.format(fullname=self._event.owner.get_full_name(),
|
||||
email=self._event.owner.email)
|
||||
return [r]
|
||||
|
||||
|
||||
class NewEventToPublishMail(AbstractEventMail):
|
||||
def get_recipients(self):
|
||||
class EventToPublishMail(AbstractEventMail):
|
||||
_template_name = 'dav_events/emails/event_to_publish.txt'
|
||||
|
||||
def _get_subject(self, **kwargs):
|
||||
s = super(EventToPublishMail, self)._get_subject(**kwargs)
|
||||
s += u' Veranstaltung veröffentlichen'
|
||||
return s
|
||||
|
||||
def _get_recipients(self):
|
||||
recipients = []
|
||||
|
||||
group_var_name = 'INCREMENTAL_PUBLISHER_GROUP'
|
||||
@@ -88,12 +134,11 @@ class NewEventToPublishMail(AbstractEventMail):
|
||||
if group_name:
|
||||
try:
|
||||
group = Group.objects.get(name=group_name)
|
||||
for user in group.user_set:
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_fullname(),
|
||||
for user in group.user_set.all():
|
||||
r = '{fullname} <{email}>'.format(fullname=user.get_full_name(),
|
||||
email=user.email)
|
||||
recipients.append(r)
|
||||
except Group.DoesNotExists:
|
||||
except Group.DoesNotExist:
|
||||
pass
|
||||
|
||||
return recipients
|
||||
|
||||
|
||||
Reference in New Issue
Block a user