From 9254a559efd7f36233b57a1370c26f7d69091dde Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 12 May 2021 11:47:40 +0200 Subject: [PATCH] Move validate_memberships_in_order into transaction --- src/pretix/base/services/orders.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 4fce257c82..3a42ab7b70 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -755,12 +755,6 @@ def _check_positions(event: Event, now_dt: datetime, positions: List[CartPositio # Sorry, can't let you keep that! delete(cp) - if not err: - try: - validate_memberships_in_order(customer, [p for p in sorted_positions if p.pk not in deleted_positions], event, lock=True) - except ValidationError as e: - raise OrderError(e.message) - if err: raise OrderError(err, errargs) @@ -821,6 +815,11 @@ def _create_order(event: Event, email: str, positions: List[CartPosition], now_d if checked_gift_cards and any(c.item.issue_giftcard for c in positions): raise OrderError(_("You cannot pay with gift cards when buying a gift card.")) + try: + validate_memberships_in_order(customer, positions, event, lock=True) + except ValidationError as e: + raise OrderError(e.message) + fees, pf, gift_card_values = _get_fees(positions, payment_provider, address, meta_info, event, checked_gift_cards) total = pending_sum = sum([c.price for c in positions]) + sum([c.value for c in fees])