forked from CGM_Public/pretix_original
Order search: Add filter for pending without payment
This commit is contained in:
@@ -230,6 +230,7 @@ class OrderFilterForm(FilterForm):
|
|||||||
('partially_paid', _('Partially paid')),
|
('partially_paid', _('Partially paid')),
|
||||||
('underpaid', _('Underpaid (but confirmed)')),
|
('underpaid', _('Underpaid (but confirmed)')),
|
||||||
('pendingpaid', _('Pending (but fully paid)')),
|
('pendingpaid', _('Pending (but fully paid)')),
|
||||||
|
('pendingnopayment', _('Pending (but no current payment)')),
|
||||||
)),
|
)),
|
||||||
(_('Approval process'), (
|
(_('Approval process'), (
|
||||||
('na', _('Approved, payment pending')),
|
('na', _('Approved, payment pending')),
|
||||||
@@ -327,6 +328,18 @@ class OrderFilterForm(FilterForm):
|
|||||||
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0)
|
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0)
|
||||||
& Q(require_approval=False)
|
& Q(require_approval=False)
|
||||||
)
|
)
|
||||||
|
elif s == 'pendingnopayment':
|
||||||
|
qs = qs.exclude(
|
||||||
|
Exists(
|
||||||
|
OrderPayment.objects.filter(
|
||||||
|
order=OuterRef('pk'),
|
||||||
|
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).filter(
|
||||||
|
status=Order.STATUS_PENDING,
|
||||||
|
require_approval=False,
|
||||||
|
)
|
||||||
elif s == 'partially_paid':
|
elif s == 'partially_paid':
|
||||||
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
|
|||||||
Reference in New Issue
Block a user