From b3debdfb55685b4586a6de43500b696b354602ac Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 13 Feb 2019 18:06:09 +0100 Subject: [PATCH] Order list: Add filter for canceled with and without paid fee --- src/pretix/control/forms/filter.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index a5e7c2444..27b7aafb2 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -207,10 +207,11 @@ class EventOrderFilterForm(OrderFilterForm): (Order.STATUS_EXPIRED, _('Expired')), (Order.STATUS_PENDING + Order.STATUS_EXPIRED, _('Pending or expired')), (Order.STATUS_CANCELED, _('Canceled')), + ('cp', _('Canceled (or with paid fee)')), ('pa', _('Approval pending')), ('overpaid', _('Overpaid')), ('underpaid', _('Underpaid')), - ('pendingpaid', _('Pending (but fully paid)')) + ('pendingpaid', _('Pending (but fully paid)')), ), required=False, ) @@ -297,6 +298,15 @@ class EventOrderFilterForm(OrderFilterForm): status=Order.STATUS_PENDING, require_approval=True ) + elif fdata.get('status') == 'cp': + s = OrderPosition.objects.filter( + order=OuterRef('pk') + ) + qs = qs.annotate( + has_pc=Exists(s) + ).filter( + Q(status=Order.STATUS_PAID, has_pc=False) | Q(status=Order.STATUS_CANCELED) + ) return qs