From 530d6b0cb60fc7d5a6c55c8458f6b8d9a3028376 Mon Sep 17 00:00:00 2001 From: AquaticLava Date: Sun, 23 Jul 2023 11:51:07 -0600 Subject: [PATCH 1/3] changed random recipe to be index based. --- cookbook/views/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 7491017418..67bb0dd6c0 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -688,7 +688,7 @@ def create(self, request): for i in range(0, days): day = start_date + datetime.timedelta(i) - recipe = random.choice(recipes) + recipe = recipes[i % len(recipes)] args = {'recipe': recipe, 'servings': servings, 'title': recipe.name, 'created_by': request.user, 'meal_type': meal_type, From 5c89173373e8efdaf517388929a97955f489e6c5 Mon Sep 17 00:00:00 2001 From: AquaticLava Date: Tue, 2 Jan 2024 18:43:22 -0700 Subject: [PATCH 2/3] changed random recipe to be index based. --- cookbook/serializer.py | 2 +- cookbook/views/api.py | 6 +++--- vue/src/components/AutoMealPlanModal.vue | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) 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 From 200cacb9ac93e82e6ef7a208f6372c1702345fb8 Mon Sep 17 00:00:00 2001 From: AquaticLava Date: Tue, 2 Jan 2024 18:43:22 -0700 Subject: [PATCH 3/3] changed keywords to be index based. --- cookbook/serializer.py | 2 +- cookbook/views/api.py | 6 +++--- vue/src/components/AutoMealPlanModal.vue | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) 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