ADD: dav_events: send email to publishers if registration is closed.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user