From 86fc4aa2d0355eca733ad4c7367153334e2b6448 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sat, 16 Aug 2025 15:08:25 +0200 Subject: [PATCH] added basic AI import and improved display for external recipes --- cookbook/serializer.py | 2 +- cookbook/views/api.py | 6 + .../display/ExternalRecipeViewer.vue | 27 +++- vue3/src/components/display/RecipeView.vue | 133 ++++++++++++------ vue3/src/composables/useFileApi.ts | 5 +- vue3/src/locales/ar.json | 1 + vue3/src/locales/bg.json | 1 + vue3/src/locales/ca.json | 1 + vue3/src/locales/cs.json | 1 + vue3/src/locales/da.json | 1 + vue3/src/locales/de.json | 1 + vue3/src/locales/el.json | 1 + vue3/src/locales/en.json | 1 + vue3/src/locales/es.json | 1 + vue3/src/locales/fi.json | 1 + vue3/src/locales/fr.json | 1 + vue3/src/locales/he.json | 1 + vue3/src/locales/hr.json | 1 + vue3/src/locales/hu.json | 1 + vue3/src/locales/hy.json | 1 + vue3/src/locales/id.json | 1 + vue3/src/locales/is.json | 1 + vue3/src/locales/it.json | 1 + vue3/src/locales/lt.json | 1 + vue3/src/locales/lv.json | 1 + vue3/src/locales/nb_NO.json | 1 + vue3/src/locales/nl.json | 1 + vue3/src/locales/pl.json | 1 + vue3/src/locales/pt.json | 1 + vue3/src/locales/pt_BR.json | 1 + vue3/src/locales/ro.json | 1 + vue3/src/locales/ru.json | 1 + vue3/src/locales/sl.json | 1 + vue3/src/locales/sv.json | 1 + vue3/src/locales/tr.json | 1 + vue3/src/locales/uk.json | 1 + vue3/src/locales/zh_Hans.json | 1 + vue3/src/locales/zh_Hant.json | 1 + vue3/src/openapi/apis/ApiApi.ts | 24 ++++ 39 files changed, 181 insertions(+), 49 deletions(-) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 03fae4f4d..5f38f0fde 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -1768,7 +1768,7 @@ class RecipeFromSourceResponseSerializer(serializers.Serializer): class AiImportSerializer(serializers.Serializer): file = serializers.FileField(allow_null=True) text = serializers.CharField(allow_null=True, allow_blank=True) - + recipe_id = serializers.CharField(allow_null=True, allow_blank=True) class ExportRequestSerializer(serializers.Serializer): type = serializers.CharField() diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 249621fde..ecee879af 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -1891,6 +1891,12 @@ class AiImportView(APIView): messages = [] uploaded_file = serializer.validated_data['file'] + + if serializer.validated_data['recipe_id']: + if recipe := Recipe.objects.filter(id=serializer.validated_data['recipe_id']).first(): + if recipe.file_path: + uploaded_file = get_recipe_provider(recipe).get_file(recipe) + if uploaded_file: base64type = None try: diff --git a/vue3/src/components/display/ExternalRecipeViewer.vue b/vue3/src/components/display/ExternalRecipeViewer.vue index f68c609d0..54f86516c 100644 --- a/vue3/src/components/display/ExternalRecipeViewer.vue +++ b/vue3/src/components/display/ExternalRecipeViewer.vue @@ -1,18 +1,24 @@