From d90fcee5e10074c5ec0ae9b68e31abd6d9996803 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 21 Aug 2020 16:12:04 +0200 Subject: [PATCH] Fix crash related to vouchers and seats PRETIXEU-2PY --- src/pretix/base/models/seating.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/models/seating.py b/src/pretix/base/models/seating.py index a494796e3..55b22209b 100644 --- a/src/pretix/base/models/seating.py +++ b/src/pretix/base/models/seating.py @@ -253,15 +253,18 @@ class Seat(models.Model): ignore_order_id=ignore_orderpos.order_id if ignore_orderpos else None, ignore_cart_id=( distance_ignore_cart_id or - (ignore_cart.cart_id if ignore_cart else None) + (ignore_cart.cart_id if ignore_cart and ignore_cart is not True else None) )) + q = Q(has_order=True) | Q(has_voucher=True) + if ignore_cart is not True: + q |= Q(has_cart=True) qs_closeby_taken = qs_annotated.annotate( distance=( Power(F('x') - Value(self.x), Value(2), output_field=models.FloatField()) + Power(F('y') - Value(self.y), Value(2), output_field=models.FloatField()) ) ).exclude(pk=self.pk).filter( - Q(has_order=True) | Q(has_cart=True) | Q(has_voucher=True), + q, distance__lt=self.event.settings.seating_minimal_distance ** 2 ) if self.event.settings.seating_distance_within_row: