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): class EventToPublishFacebookMail(EventToPublishMail):
_template_name = 'dav_events/emails/event_to_publish_facebook.txt' _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 django.views import generic
from .. import choices from .. import choices
from .. import emails
from .. import forms from .. import forms
from .. import models from .. import models
from ..utils import has_role from ..utils import get_users_by_role, has_role
from ..workflow import DefaultWorkflow from ..workflow import DefaultWorkflow
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -192,21 +193,33 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
return context 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): def post(self, request, *args, **kwargs):
event = self.get_object() event = self.get_object()
action = request.POST.get('action') action = request.POST.get('action')
if action == 'close-registration': if action == 'close-registration':
logger.info('Close registration: %s', event)
event.registration_closed = True event.registration_closed = True
event.save() event.save(implicit_update=True)
self._send_mails(event, request)
messages.success(request, _(u'Die Anmeldung wurde geschlossen')) messages.success(request, _(u'Die Anmeldung wurde geschlossen'))
elif action == 'open-registration': elif action == 'open-registration':
logger.info('Reopen registration: %s', event)
event.registration_closed = False event.registration_closed = False
event.save() event.save(implicit_update=True)
messages.success(request, _(u'Die Anmeldung wurde geöffnet')) messages.success(request, _(u'Die Anmeldung wurde geöffnet'))
elif action == 'kill-deadline': elif action == 'kill-deadline':
logger.info('Delete deadline: %s', event)
event.deadline = None event.deadline = None
event.registration_closed = False event.registration_closed = False
event.save() event.save(implicit_update=True)
messages.success(request, _(u'Der Anmeldeschluss wurde gelöscht')) messages.success(request, _(u'Der Anmeldeschluss wurde gelöscht'))
return HttpResponseRedirect(reverse('dav_events:registrations', kwargs={'pk': event.pk})) return HttpResponseRedirect(reverse('dav_events:registrations', kwargs={'pk': event.pk}))