Improved group/role thing. Improved email sending (prepare for

OneClickAction).
This commit is contained in:
2018-01-26 16:58:47 +01:00
parent 5cf05666ab
commit 6f003aaf6a
7 changed files with 97 additions and 75 deletions

View File

@@ -3,6 +3,7 @@ import datetime
import logging
import os
import re
import uuid
from babel.dates import format_date
from django.conf import settings
from django.contrib.auth import get_user_model
@@ -16,6 +17,7 @@ from django_countries.fields import CountryField
from . import choices
from . import config
from . import emails
from .utils import get_users_by_role
logger = logging.getLogger(__name__)
@@ -178,9 +180,15 @@ class Event(models.Model):
email=self.trainer_email,
)
owner.save()
self.owner = owner
emails_to_send.append(emails.NewEventMail(event=self))
emails_to_send.append(emails.EventToAcceptMail(event=self))
managers = get_users_by_role('manage_all')
managers += get_users_by_role('manage_{}'.format(self.sport.lower()))
for user in managers:
emails_to_send.append(emails.EventToAcceptMail(recipient=user, event=self))
emails_to_send.append(emails.NewEventMail(recipient=owner, event=self))
super(Event, self).save(**kwargs)
for email in emails_to_send:
@@ -195,12 +203,15 @@ class Event(models.Model):
if user:
self.accepted_by = user
self.save()
emails_to_send = [
emails.EventAcceptedMail(event=self),
emails.EventToPublishMail(event=self)
]
for email in emails_to_send:
publishers = get_users_by_role('publish_incremental')
for user in publishers:
email = emails.EventToPublishMail(recipient=user, event=self)
email.send()
email = emails.EventAcceptedMail(recipient=self.owner, event=self)
email.send()
return self.number
else:
return None
@@ -330,3 +341,10 @@ class Event(models.Model):
template_name = os.path.join('dav_events', 'event.html')
template = get_template(template_name)
return template.render(self.get_template_context())
# class OneClickAction(models.Model):
# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
# caller = models.ForeignKey(settings.AUTH_USER_MODEL,
# null=True,
# related_name='+')