mirror of
https://github.com/pretix/pretix.git
synced 2026-05-07 15:34:02 +00:00
Allow selecting the same add-on multiple times (#1717)
This commit is contained in:
@@ -58,9 +58,10 @@ def item_group_by_category(items):
|
||||
)
|
||||
|
||||
|
||||
def get_grouped_items(event, subevent=None, voucher=None, channel='web', require_seat=0, base_qs=None):
|
||||
def get_grouped_items(event, subevent=None, voucher=None, channel='web', require_seat=0, base_qs=None, allow_addons=False,
|
||||
quota_cache=None):
|
||||
base_qs = base_qs if base_qs is not None else event.items
|
||||
items = base_qs.using(settings.DATABASE_REPLICA).filter_available(channel=channel, voucher=voucher).select_related(
|
||||
items = base_qs.using(settings.DATABASE_REPLICA).filter_available(channel=channel, voucher=voucher, allow_addons=allow_addons).select_related(
|
||||
'category', 'tax_rule', # for re-grouping
|
||||
'hidden_if_available',
|
||||
).prefetch_related(
|
||||
@@ -124,7 +125,7 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
|
||||
else:
|
||||
items = items.filter(requires_seat=0)
|
||||
display_add_to_cart = False
|
||||
external_quota_cache = event.cache.get('item_quota_cache')
|
||||
external_quota_cache = quota_cache or event.cache.get('item_quota_cache')
|
||||
quota_cache = external_quota_cache or {}
|
||||
|
||||
if subevent:
|
||||
@@ -291,7 +292,7 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
|
||||
|
||||
item._remove = not bool(item.available_variations)
|
||||
|
||||
if not external_quota_cache and not voucher:
|
||||
if not external_quota_cache and not voucher and not allow_addons:
|
||||
event.cache.set('item_quota_cache', quota_cache, 5)
|
||||
items = [item for item in items
|
||||
if (len(item.available_variations) > 0 or not item.has_variations) and not item._remove]
|
||||
|
||||
Reference in New Issue
Block a user