forked from CGM_Public/pretix_original
* Upgrade Django to 3.0 and other dependencies to recent versions * Fix otp version contsraint * Remove six dependency * Resolve some warnings * Fix failing tests * Update django-countries * Resolve all RemovedInDjango31Warnings in test suite * Run isort * Fix import * Update PostgreSQL version on travis
54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
from django.dispatch import receiver
|
|
from django.urls import resolve, reverse
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from pretix.base.signals import logentry_display
|
|
from pretix.control.signals import nav_event
|
|
|
|
|
|
@receiver(nav_event, dispatch_uid="sendmail_nav")
|
|
def control_nav_import(sender, request=None, **kwargs):
|
|
url = resolve(request.path_info)
|
|
if not request.user.has_event_permission(request.organizer, request.event, 'can_change_orders', request=request):
|
|
return []
|
|
return [
|
|
{
|
|
'label': _('Send out emails'),
|
|
'url': reverse('plugins:sendmail:send', kwargs={
|
|
'event': request.event.slug,
|
|
'organizer': request.event.organizer.slug,
|
|
}),
|
|
'active': (url.namespace == 'plugins:sendmail' and url.url_name == 'send'),
|
|
'icon': 'envelope',
|
|
'children': [
|
|
{
|
|
'label': _('Send email'),
|
|
'url': reverse('plugins:sendmail:send', kwargs={
|
|
'event': request.event.slug,
|
|
'organizer': request.event.organizer.slug,
|
|
}),
|
|
'active': (url.namespace == 'plugins:sendmail' and url.url_name == 'send'),
|
|
},
|
|
{
|
|
'label': _('Email history'),
|
|
'url': reverse('plugins:sendmail:history', kwargs={
|
|
'event': request.event.slug,
|
|
'organizer': request.event.organizer.slug,
|
|
}),
|
|
'active': (url.namespace == 'plugins:sendmail' and url.url_name == 'history'),
|
|
},
|
|
]
|
|
},
|
|
]
|
|
|
|
|
|
@receiver(signal=logentry_display)
|
|
def pretixcontrol_logentry_display(sender, logentry, **kwargs):
|
|
plains = {
|
|
'pretix.plugins.sendmail.sent': _('Email was sent'),
|
|
'pretix.plugins.sendmail.order.email.sent': _('The order received a mass email.'),
|
|
'pretix.plugins.sendmail.order.email.sent.attendee': _('A ticket holder of this order received a mass email.'),
|
|
}
|
|
if logentry.action_type in plains:
|
|
return plains[logentry.action_type]
|