changed keywords to be index based.

This commit is contained in:
AquaticLava 2024-01-02 18:43:22 -07:00
parent 61b67cd37a
commit 200cacb9ac
3 changed files with 12 additions and 5 deletions

View File

@ -1023,7 +1023,7 @@ class AutoMealPlanSerializer(serializers.Serializer):
start_date = serializers.DateField() start_date = serializers.DateField()
end_date = serializers.DateField() end_date = serializers.DateField()
meal_type_id = serializers.IntegerField() meal_type_id = serializers.IntegerField()
keywords = KeywordSerializer(many=True) keyword_ids = serializers.ListField()
servings = CustomDecimalField() servings = CustomDecimalField()
shared = UserSerializer(many=True, required=False, allow_null=True) shared = UserSerializer(many=True, required=False, allow_null=True)
addshopping = serializers.BooleanField() addshopping = serializers.BooleanField()

View File

@ -738,7 +738,7 @@ class AutoPlanViewSet(viewsets.ViewSet):
serializer = AutoMealPlanSerializer(data=request.data) serializer = AutoMealPlanSerializer(data=request.data)
if serializer.is_valid(): if serializer.is_valid():
keywords = serializer.validated_data['keywords'] keyword_ids = serializer.validated_data['keyword_ids']
start_date = serializer.validated_data['start_date'] start_date = serializer.validated_data['start_date']
end_date = serializer.validated_data['end_date'] end_date = serializer.validated_data['end_date']
servings = serializer.validated_data['servings'] servings = serializer.validated_data['servings']
@ -753,8 +753,8 @@ class AutoPlanViewSet(viewsets.ViewSet):
recipes = Recipe.objects.values('id', 'name') recipes = Recipe.objects.values('id', 'name')
meal_plans = list() meal_plans = list()
for keyword in keywords: for keyword_id in keyword_ids:
recipes = recipes.filter(keywords__name=keyword['name']) recipes = recipes.filter(keywords__id=keyword_id)
if len(recipes) == 0: if len(recipes) == 0:
return Response(serializer.data) return Response(serializer.data)

View File

@ -227,11 +227,18 @@ export default {
async autoPlanThread(autoPlan, mealTypeIndex) { async autoPlanThread(autoPlan, mealTypeIndex) {
let apiClient = new ApiApiFactory() 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 = { let data = {
"start_date": moment(autoPlan.startDay).format("YYYY-MM-DD"), "start_date": moment(autoPlan.startDay).format("YYYY-MM-DD"),
"end_date": moment(autoPlan.endDay).format("YYYY-MM-DD"), "end_date": moment(autoPlan.endDay).format("YYYY-MM-DD"),
"meal_type_id": autoPlan.meal_types[mealTypeIndex].id, "meal_type_id": autoPlan.meal_types[mealTypeIndex].id,
"keywords": autoPlan.keywords[mealTypeIndex], "keyword_ids": keyword_ids,
"servings": autoPlan.servings, "servings": autoPlan.servings,
"shared": autoPlan.shared, "shared": autoPlan.shared,
"addshopping": autoPlan.addshopping "addshopping": autoPlan.addshopping