From 015b4efb1120e2b6b3a869a809dbd178b84ab775 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 16 Dec 2025 13:35:35 +0100 Subject: [PATCH] fix linked_orderpositions filter in checkinrpc --- src/pretix/api/views/checkin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pretix/api/views/checkin.py b/src/pretix/api/views/checkin.py index dc0c8a7730..8fa1290563 100644 --- a/src/pretix/api/views/checkin.py +++ b/src/pretix/api/views/checkin.py @@ -521,11 +521,13 @@ def _redeem_process(*, checkinlists, raw_barcode, answers_data, datetime, force, # with respecting the force option), or it's a reusable medium (-> proceed with that) if not op_candidates: try: - media = ReusableMedium.objects.active().get( + media = ReusableMedium.objects.active().annotate( + has_linked_orderpositions=Exists(ReusableMedium.linked_orderpositions.through.objects.filter(reusablemedium_id=OuterRef('pk'))) + ).get( organizer_id=checkinlists[0].event.organizer_id, type=source_type, identifier=raw_barcode, - linked_orderpositions__isnull=False, + has_linked_orderpositions=True, ) raw_barcode_for_checkin = raw_barcode except ReusableMedium.DoesNotExist: