diff --git a/cookbook/serializer.py b/cookbook/serializer.py index c1796351b4..bb7bbf62de 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -1023,7 +1023,7 @@ class AutoMealPlanSerializer(serializers.Serializer): start_date = serializers.DateField() end_date = serializers.DateField() meal_type_id = serializers.IntegerField() - keywords = KeywordSerializer(many=True) + keyword_ids = serializers.ListField() servings = CustomDecimalField() shared = UserSerializer(many=True, required=False, allow_null=True) addshopping = serializers.BooleanField() diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 55261fffd8..98b4d9bc17 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -738,7 +738,7 @@ def create(self, request): serializer = AutoMealPlanSerializer(data=request.data) if serializer.is_valid(): - keywords = serializer.validated_data['keywords'] + keyword_ids = serializer.validated_data['keyword_ids'] start_date = serializer.validated_data['start_date'] end_date = serializer.validated_data['end_date'] servings = serializer.validated_data['servings'] @@ -753,8 +753,8 @@ def create(self, request): recipes = Recipe.objects.values('id', 'name') meal_plans = list() - for keyword in keywords: - recipes = recipes.filter(keywords__name=keyword['name']) + for keyword_id in keyword_ids: + recipes = recipes.filter(keywords__id=keyword_id) if len(recipes) == 0: return Response(serializer.data) diff --git a/vue/src/components/AutoMealPlanModal.vue b/vue/src/components/AutoMealPlanModal.vue index 5428fdfe93..3138c14edf 100644 --- a/vue/src/components/AutoMealPlanModal.vue +++ b/vue/src/components/AutoMealPlanModal.vue @@ -227,11 +227,18 @@ export default { async autoPlanThread(autoPlan, mealTypeIndex) { let apiClient = new ApiApiFactory() + + let keyword_ids = [] + for (const index in autoPlan.keywords[mealTypeIndex]){ + let keyword = autoPlan.keywords[mealTypeIndex][index] + keyword_ids.push(keyword.id) + } + let data = { "start_date": moment(autoPlan.startDay).format("YYYY-MM-DD"), "end_date": moment(autoPlan.endDay).format("YYYY-MM-DD"), "meal_type_id": autoPlan.meal_types[mealTypeIndex].id, - "keywords": autoPlan.keywords[mealTypeIndex], + "keyword_ids": keyword_ids, "servings": autoPlan.servings, "shared": autoPlan.shared, "addshopping": autoPlan.addshopping