From c5fcfd07a7cf72c17ea5aa319c9e6d556a76a15c Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Fri, 5 Dec 2025 08:20:19 +0100 Subject: [PATCH] quick optimizations --- cookbook/serializer.py | 7 ++++++- cookbook/views/api.py | 6 +++--- vue3/src/components/display/ShoppingLineItem.vue | 6 +++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 8cb3bee1a..2f3ee67a7 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -190,7 +190,12 @@ class SpaceFilterSerializer(serializers.ListSerializer): iterable = data.all() if hasattr(data, 'all') else data if isinstance(iterable, list) or (isinstance(iterable, QuerySet) and getattr(iterable, '_result_cache', None) is not None): try: - data = [d for d in iterable if d.userspace.space.id == self.context['request'].space.id] + new_data = [] + for u in iterable: + for us in u.userspace_set.all(): + if us.space.id == self.context['request'].space.id: + new_data.append(u) + data = new_data except Exception: traceback.print_exc() data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all() diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 8d2f6ae35..139ca0f9e 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -2044,10 +2044,12 @@ class ShoppingListEntryViewSet(LoggingMixin, viewsets.ModelViewSet): def get_queryset(self): self.queryset = self.queryset.filter(space=self.request.space) + # select_related("list_recipe") self.queryset = self.queryset.filter( Q(created_by=self.request.user) | Q(created_by__in=list(self.request.user.get_shopping_share()))).prefetch_related('created_by', 'food', + 'food__shopping_lists', 'shopping_lists', 'unit', 'list_recipe', @@ -2055,9 +2057,7 @@ class ShoppingListEntryViewSet(LoggingMixin, viewsets.ModelViewSet): 'list_recipe__recipe__created_by', 'list_recipe__mealplan', 'list_recipe__mealplan__shared', - - 'list_recipe__mealplan__shared__userpreference', - 'list_recipe__mealplan__shared__userpreference__space', + 'list_recipe__mealplan__shared__userspace_set', 'list_recipe__mealplan__shoppinglistrecipe_set', 'list_recipe__mealplan__recipe', 'list_recipe__mealplan__recipe__keywords', diff --git a/vue3/src/components/display/ShoppingLineItem.vue b/vue3/src/components/display/ShoppingLineItem.vue index c3c107bc1..53826c381 100644 --- a/vue3/src/components/display/ShoppingLineItem.vue +++ b/vue3/src/components/display/ShoppingLineItem.vue @@ -37,7 +37,7 @@ -