one loop less

This commit is contained in:
Mira Weller
2024-10-09 12:13:11 +02:00
parent a314d219b8
commit f9ca9a781e

View File

@@ -54,23 +54,24 @@ class CrossSellingService:
def get_data(self): def get_data(self):
if self.event.has_subevents: if self.event.has_subevents:
subevents = set(pos.subevent for pos in self.cartpositions) subevents = set(pos.subevent for pos in self.cartpositions)
result = [ result = (
(DummyCategory(category, subevent), (DummyCategory(category, subevent),
self._prepare_items(subevent, items_qs, discount_info), self._prepare_items(subevent, items_qs, discount_info),
f'subevent_{subevent.pk}_') f'subevent_{subevent.pk}_')
for subevent in subevents for subevent in subevents
for (category, items_qs, discount_info) in self._applicable_categories(subevent.pk) for (category, items_qs, discount_info) in self._applicable_categories(subevent.pk)
] )
else: else:
result = [ result = (
(category, (category,
self._prepare_items(None, items_qs, discount_info), self._prepare_items(None, items_qs, discount_info),
'') '')
for (category, items_qs, discount_info) in self._applicable_categories(0) for (category, items_qs, discount_info) in self._applicable_categories(0)
] )
result = [(category, items, form_prefix) for (category, items, form_prefix) in result if len(items) > 0]
for category, items, form_prefix in result: for category, items, form_prefix in result:
category.category_has_discount = any(item.original_price for item in items) category.category_has_discount = any(item.original_price for item in items)
return [(category, items, form_prefix) for (category, items, form_prefix) in result if len(items) > 0] return result
def _applicable_categories(self, subevent_id): def _applicable_categories(self, subevent_id):
return [ return [