diff --git a/cookbook/serializer.py b/cookbook/serializer.py
index 55788c24c..9b69b92bd 100644
--- a/cookbook/serializer.py
+++ b/cookbook/serializer.py
@@ -775,7 +775,7 @@ class SupermarketCategoryRelationSerializer(WritableNestedModelSerializer):
fields = ('id', 'category', 'supermarket', 'order')
-class SupermarketSerializer(UniqueFieldsMixin, SpacedModelSerializer, OpenDataModelMixin):
+class SupermarketSerializer(UniqueFieldsMixin, SpacedModelSerializer, WritableNestedModelSerializer, OpenDataModelMixin):
category_to_supermarket = SupermarketCategoryRelationSerializer(many=True, read_only=True)
shopping_lists = ShoppingListSerializer(many=True, required=False)
@@ -1433,8 +1433,17 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer):
read_only_fields = ('id', 'created_by',)
+class FoodShoppingSerializer(serializers.ModelSerializer):
+ supermarket_category = SupermarketCategorySerializer(read_only=True)
+ shopping_lists = ShoppingListSerializer(read_only=True)
+
+ class Meta:
+ model = Food
+ fields = ('id', 'name', 'plural_name', 'supermarket_category', 'shopping_lists')
+
+
class ShoppingListEntrySerializer(WritableNestedModelSerializer):
- food = FoodSimpleSerializer(allow_null=True)
+ food = FoodShoppingSerializer(allow_null=True)
unit = UnitSerializer(allow_null=True, required=False)
shopping_lists = ShoppingListSerializer(many=True, required=False)
list_recipe_data = ShoppingListRecipeSerializer(source='list_recipe', read_only=True)
diff --git a/vue3/src/components/display/ShoppingListView.vue b/vue3/src/components/display/ShoppingListView.vue
index 3900eee04..6cc0734c4 100644
--- a/vue3/src/components/display/ShoppingListView.vue
+++ b/vue3/src/components/display/ShoppingListView.vue
@@ -31,7 +31,7 @@
+ :label="$t('GroupBy')">
@@ -69,14 +69,14 @@
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -117,17 +117,26 @@
-
- {{ shoppingLists.filter(sl => useUserPreferenceStore().deviceSettings.shopping_selected_shopping_list.includes(sl.id)).flatMap(sl => sl.name).join(', ') }}
+
+ {{
+ shoppingLists.filter(sl => useUserPreferenceStore().deviceSettings.shopping_selected_shopping_list.includes(sl.id)).flatMap(sl => sl.name).join(', ')
+ }}
{{ $t('ShoppingList') }}
-
-
+
+
{{ $t('All') }}
+
+
+
+
+
+
+ {{ $t('None') }}
+
@@ -303,7 +312,7 @@