diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 1d519db18..51b654646 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -2098,4 +2098,13 @@ def ingredient_from_string(request): ingredient_parser = IngredientParser(request, False) amount, unit, food, note = ingredient_parser.parse(text) - return JsonResponse({'amount': amount, 'unit': unit, 'food': food, 'note': note}, status=200) + ingredient = {'amount': amount, 'unit': None, 'food': None, 'note': note} + if food: + food, created = Food.objects.get_or_create(space=request.space, name=food) + ingredient['food'] = {'name': food.name, 'id': food.id} + + if unit: + unit, created = Unit.objects.get_or_create(space=request.space, name=unit) + ingredient['unit'] = {'name': unit.name, 'id': unit.id} + + return JsonResponse(ingredient, status=200) diff --git a/vue3/src/components/display/ShoppingListView.vue b/vue3/src/components/display/ShoppingListView.vue index 6cd09a2f0..926d4baed 100644 --- a/vue3/src/components/display/ShoppingListView.vue +++ b/vue3/src/components/display/ShoppingListView.vue @@ -269,8 +269,8 @@ function addIngredient() { api.apiIngredientFromStringCreate({ingredientString: {text: ingredientInput.value} as IngredientString}).then(r => { useShoppingStore().createObject({ amount: Math.max(r.amount, 1), - unit: (r.unit != null) ? {name: r.unit} as Unit : null, - food: {name: r.food} as Food, + unit: r.unit, + food: r.food, } as ShoppingListEntry, true) ingredientInput.value = '' diff --git a/vue3/src/components/inputs/StepEditor.vue b/vue3/src/components/inputs/StepEditor.vue index 8547abc24..ec51ba508 100644 --- a/vue3/src/components/inputs/StepEditor.vue +++ b/vue3/src/components/inputs/StepEditor.vue @@ -110,7 +110,7 @@ - {{$t('Add')}} + {{ $t('Add') }} @@ -118,7 +118,7 @@