From fb948cc7f4ad4ee847298dd3b205b8a50392a801 Mon Sep 17 00:00:00 2001 From: Kara Engelhardt Date: Wed, 9 Sep 2026 15:33:38 +0200 Subject: [PATCH] sendmail: small performance winds in checkin query --- src/pretix/plugins/sendmail/views.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/pretix/plugins/sendmail/views.py b/src/pretix/plugins/sendmail/views.py index 3093d5ec1..916d33233 100644 --- a/src/pretix/plugins/sendmail/views.py +++ b/src/pretix/plugins/sendmail/views.py @@ -370,16 +370,18 @@ class OrderSendView(BaseSenderView): ci_filter = Q(pk__in=[]) # return nothing if form.cleaned_data.get('not_checked_in'): + consider_tickets_used_lists = list(self.request.event.checkin_lists.filter(consider_tickets_used=True).values_list("id", flat=True)) + opq = opq.alias( any_checkins=Exists( - Checkin.objects.filter( + Checkin.objects.with_scopes_disabled().filter( position_id=OuterRef('pk'), - list__consider_tickets_used=True, + list_id__in=consider_tickets_used_lists, ) ) | Exists( - Checkin.objects.filter( + Checkin.objects.with_scopes_disabled().filter( position__addon_to_id=OuterRef('pk'), - list__consider_tickets_used=True, + list_id__in=consider_tickets_used_lists, ) ) ) @@ -388,12 +390,12 @@ class OrderSendView(BaseSenderView): if form.cleaned_data.get('checkin_lists'): opq = opq.alias( matching_checkins=Exists( - Checkin.objects.filter( + Checkin.objects.with_scopes_disabled().filter( position_id=OuterRef('pk'), list_id__in=[i.pk for i in form.cleaned_data.get('checkin_lists', [])], ) ) | Exists( - Checkin.objects.filter( + Checkin.objects.with_scopes_disabled().filter( position__addon_to_id=OuterRef('pk'), list_id__in=[i.pk for i in form.cleaned_data.get('checkin_lists', [])], )