ADD: dav_events: send email to publishers if registration is closed.

This commit is contained in:
2019-06-03 11:42:41 +02:00
parent bee1623529
commit 2dbab0032f
3 changed files with 43 additions and 4 deletions

View File

@@ -101,3 +101,17 @@ class EventToPublishWebMail(EventToPublishMail):
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

View File

@@ -0,0 +1,12 @@
{% load i18n %}Hallo {{ recipient.first_name }},
{{ editor.get_full_name }} hat die Anmeldung für die folgende Veranstaltung geschlossen.
{{ number }} - {{ title }}
Datum: {{ normalized_date }}
{% if deadline %}bisheriger Anmeldeschluss: {{ deadline|date:'l, d. F Y' }}
{% endif %}geplante Veröffentlichung: {% if planned_publication_date %}{{ planned_publication_date|date:'l, d. F Y' }}{% else %}sofort{% endif %}
Der folgende Link führt zur Veranstaltung:
{{ base_url }}{{ event.get_absolute_url }}

View File

@@ -16,9 +16,10 @@ from django.utils.translation import ugettext as _
from django.views import generic
from .. import choices
from .. import emails
from .. import forms
from .. import models
from ..utils import has_role
from ..utils import get_users_by_role, has_role
from ..workflow import DefaultWorkflow
logger = logging.getLogger(__name__)
@@ -192,21 +193,33 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
return context
def _send_mails(self, event, request):
editor = request.user
recipients = get_users_by_role('publisher')
for recipient in recipients:
if recipient.email:
email = emails.EventRegistrationClosedMail(recipient=recipient, event=event, editor=editor)
email.send()
def post(self, request, *args, **kwargs):
event = self.get_object()
action = request.POST.get('action')
if action == 'close-registration':
logger.info('Close registration: %s', event)
event.registration_closed = True
event.save()
event.save(implicit_update=True)
self._send_mails(event, request)
messages.success(request, _(u'Die Anmeldung wurde geschlossen'))
elif action == 'open-registration':
logger.info('Reopen registration: %s', event)
event.registration_closed = False
event.save()
event.save(implicit_update=True)
messages.success(request, _(u'Die Anmeldung wurde geöffnet'))
elif action == 'kill-deadline':
logger.info('Delete deadline: %s', event)
event.deadline = None
event.registration_closed = False
event.save()
event.save(implicit_update=True)
messages.success(request, _(u'Der Anmeldeschluss wurde gelöscht'))
return HttpResponseRedirect(reverse('dav_events:registrations', kwargs={'pk': event.pk}))