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):
|
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
|
||||||
|
|||||||
@@ -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 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}))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user