diff --git a/src/pretix/control/views/typeahead.py b/src/pretix/control/views/typeahead.py index 7e5c8f3a7..250a24777 100644 --- a/src/pretix/control/views/typeahead.py +++ b/src/pretix/control/views/typeahead.py @@ -163,23 +163,27 @@ def nav_context_list(request): qs_orga = qs_orga.filter(Q(name__icontains=query) | Q(slug__icontains=query)) if query: - qs_orders = Order.objects.filter(code__icontains=query).select_related('event', 'event__organizer') + qs_orders = Order.objects.select_related('event', 'event__organizer') if not request.user.has_active_staff_session(request.session.session_key): qs_orders = qs_orders.filter( Q(event__organizer_id__in=request.user.teams.filter( all_events=True, can_view_orders=True).values_list('organizer', flat=True)) | Q(event_id__in=request.user.teams.filter( can_view_orders=True).values_list('limit_events__id', flat=True)) - ) + ).filter(code__icontains=query) + else: + qs_orders = qs_orders.filter(code__iexact=query) - qs_vouchers = Voucher.objects.filter(code__icontains=query).select_related('event', 'event__organizer') + qs_vouchers = Voucher.objects.select_related('event', 'event__organizer') if not request.user.has_active_staff_session(request.session.session_key): qs_vouchers = qs_vouchers.filter( Q(event__organizer_id__in=request.user.teams.filter( all_events=True, can_view_vouchers=True).values_list('organizer', flat=True)) | Q(event_id__in=request.user.teams.filter( can_view_vouchers=True).values_list('limit_events__id', flat=True)) - ) + ).filter(code__icontains=query) + else: + qs_vouchers = qs_vouchers.filter(code__iexact=query) else: qs_vouchers = Voucher.objects.none() qs_orders = Order.objects.none()