From 17de37b9fc60f9133f58e3bbcba9f3841bb4f7b0 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Thu, 4 Dec 2025 07:46:56 +0100 Subject: [PATCH] fixed category change entry updaet --- cookbook/serializer.py | 18 +++++++----------- .../dialogs/ShoppingLineItemDialog.vue | 1 + vue3/src/stores/ShoppingStore.ts | 3 +++ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 85afc96f2..6cb63ba5d 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -187,18 +187,14 @@ class SpaceFilterSerializer(serializers.ListSerializer): data = [] else: iterable = data.all() if hasattr(data, 'all') else data - try: - if isinstance(iterable, list) or (isinstance(iterable, QuerySet) and getattr(iterable, '_result_cache', None) is not None): - data = [d for d in iterable if d.userspace.space.id == self.context['request'].space.id] + if isinstance(iterable, list) or (isinstance(iterable, QuerySet) and getattr(iterable, '_result_cache', None) is not None): + data = [d for d in iterable if d.userspace.space.id == self.context['request'].space.id] + else: + if hasattr(self.context['request'], 'space'): + data = data.filter(userspace__space=self.context['request'].space).all() else: - if hasattr(self.context['request'], 'space'): - data = data.filter(userspace__space=self.context['request'].space).all() - else: - # not sure why but this branch can be hit (just normal page load, need to see why) - data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all() - except Exception: - # not sure why but this branch can be hit (just normal page load, need to see why) - data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all() + # not sure why but this branch can be hit (just normal page load, need to see why) + data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all() elif isinstance(data, list): data = [d for d in data if getattr(d, self.child.Meta.model.get_space_key()[0]) == self.context['request'].space] else: diff --git a/vue3/src/components/dialogs/ShoppingLineItemDialog.vue b/vue3/src/components/dialogs/ShoppingLineItemDialog.vue index bf6b9b9e4..476f50751 100644 --- a/vue3/src/components/dialogs/ShoppingLineItemDialog.vue +++ b/vue3/src/components/dialogs/ShoppingLineItemDialog.vue @@ -174,6 +174,7 @@ const isShoppingLineDelayed = computed(() => { function categoryUpdate(category: SupermarketCategory) { const api = new ApiApi() shoppingListFood.value.food.supermarketCategory = category + shoppingListFood.value.entries.forEach(e => e.food.supermarketCategory = category) useShoppingStore().updateEntriesStructure() api.apiFoodUpdate({id: shoppingListFood.value.food.id, food: shoppingListFood.value.food}).then(r => { useMessageStore().addPreparedMessage(PreparedMessage.UPDATE_SUCCESS) diff --git a/vue3/src/stores/ShoppingStore.ts b/vue3/src/stores/ShoppingStore.ts index c6937fbda..3bf646015 100644 --- a/vue3/src/stores/ShoppingStore.ts +++ b/vue3/src/stores/ShoppingStore.ts @@ -234,6 +234,9 @@ export const useShoppingStore = defineStore(_STORE_ID, () => { r.results.forEach((e) => { entries.value.set(e.id!, e) }) + if(r.results.length > 0){ + updateEntriesStructure() + } currentlyUpdating.value = false }).catch((err: any) => { currentlyUpdating.value = false