From 47b7d7b36c7cced5e4e2f1fc805d53a35ac9a270 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 30 Nov 2018 15:30:35 +0100 Subject: [PATCH] Add separate notification category for orders that require approval --- src/pretix/api/webhooks.py | 4 ++++ src/pretix/base/notifications.py | 6 ++++++ src/pretix/base/services/orders.py | 2 ++ src/pretix/control/logdisplay.py | 1 + 4 files changed, 13 insertions(+) diff --git a/src/pretix/api/webhooks.py b/src/pretix/api/webhooks.py index e727c8088..31701f799 100644 --- a/src/pretix/api/webhooks.py +++ b/src/pretix/api/webhooks.py @@ -112,6 +112,10 @@ def register_default_webhook_events(sender, **kwargs): 'pretix.event.order.placed', _('New order placed'), ), + ParametrizedOrderWebhookEvent( + 'pretix.event.order.placed.required_approval', + _('New order requires approval'), + ), ParametrizedOrderWebhookEvent( 'pretix.event.order.paid', _('Order marked as paid'), diff --git a/src/pretix/base/notifications.py b/src/pretix/base/notifications.py index 285a2b3b1..bd9e7d2b7 100644 --- a/src/pretix/base/notifications.py +++ b/src/pretix/base/notifications.py @@ -193,6 +193,12 @@ def register_default_notification_types(sender, **kwargs): _('New order placed'), _('A new order has been placed: {order.code}'), ), + ParametrizedOrderNotificationType( + sender, + 'pretix.event.order.placed.require_approval', + _('New order requires approval'), + _('A new order has been placed that requires approval: {order.code}'), + ), ParametrizedOrderNotificationType( sender, 'pretix.event.order.paid', diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 6283d0442..e30746f5d 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -542,6 +542,8 @@ def _create_order(event: Event, email: str, positions: List[CartPosition], now_d OrderPosition.transform_cart_positions(positions, order) order.log_action('pretix.event.order.placed') + if order.require_approval: + order.log_action('pretix.event.order.placed.require_approval') if meta_info: for msg in meta_info.get('confirm_messages', []): order.log_action('pretix.event.order.consent', data={'msg': msg}) diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 6b3441344..acb4f1526 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -165,6 +165,7 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs): 'pretix.event.order.refunded': _('The order has been refunded.'), 'pretix.event.order.canceled': _('The order has been canceled.'), 'pretix.event.order.placed': _('The order has been created.'), + 'pretix.event.order.placed.require_approval': _('The order requires approval before it can continue to be processed.'), 'pretix.event.order.approved': _('The order has been approved.'), 'pretix.event.order.denied': _('The order has been denied.'), 'pretix.event.order.contact.changed': _('The email address has been changed from "{old_email}" '