From 527a2504359993447213f2fd6dd03672a53c347d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 6 Aug 2019 10:31:57 +0200 Subject: [PATCH] Deal with bundled products with no quotas Fix PRETIXEU-1A8 --- src/pretix/base/services/cart.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index c4596850a0..600615b07c 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -789,14 +789,19 @@ class CartManager: if isinstance(op, self.AddOperation): for b in op.bundled: - b_quota_available_count = min(available_count * b.count, min(quotas_ok[q] for q in b.quotas)) + b_quotas = list(b.quotas) + if not b_quotas: + err = err or error_messages['unavailable'] + available_count = 0 + continue + b_quota_available_count = min(available_count * b.count, min(quotas_ok[q] for q in b_quotas)) if b_quota_available_count < b.count: err = err or error_messages['unavailable'] available_count = 0 elif b_quota_available_count < available_count * b.count: err = err or error_messages['in_part'] available_count = b_quota_available_count // b.count - for q in b.quotas: + for q in b_quotas: quotas_ok[q] -= available_count * b.count # TODO: is this correct?