diff --git a/cookbook/serializer.py b/cookbook/serializer.py index d969e8181..c6f1733bc 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -1559,12 +1559,15 @@ class RecipeFromSourceSerializer(serializers.Serializer): data = serializers.CharField(required=False, allow_null=True, allow_blank=True) bookmarklet = serializers.IntegerField(required=False, allow_null=True, ) + class SourceImportFoodSerializer(serializers.Serializer): name = serializers.CharField() + class SourceImportUnitSerializer(serializers.Serializer): name = serializers.CharField() + class SourceImportIngredientSerializer(serializers.Serializer): amount = serializers.FloatField() food = SourceImportFoodSerializer() @@ -1572,25 +1575,30 @@ class SourceImportIngredientSerializer(serializers.Serializer): note = serializers.CharField(required=False) original_text = serializers.CharField() + class SourceImportStepSerializer(serializers.Serializer): instruction = serializers.CharField() ingredients = SourceImportIngredientSerializer(many=True) show_ingredients_table = serializers.BooleanField() + class SourceImportKeywordSerializer(serializers.Serializer): id = serializers.IntegerField(allow_null=True) label = serializers.CharField() name = serializers.CharField() import_keyword = serializers.BooleanField() + class SourceImportPropertyTypeSerializer(serializers.Serializer): id = serializers.IntegerField() name = serializers.CharField() + class SourceImportPropertySerializer(serializers.Serializer): property_type = SourceImportPropertyTypeSerializer(many=False) property_amount = serializers.FloatField() + class SourceImportRecipeSerializer(serializers.Serializer): steps = SourceImportStepSerializer(many=True) internal = serializers.BooleanField() @@ -1606,12 +1614,17 @@ class SourceImportRecipeSerializer(serializers.Serializer): properties = serializers.ListField(child=SourceImportPropertySerializer()) + +class SourceImportDuplicateSerializer(serializers.Serializer): + id = serializers.IntegerField() + name = serializers.CharField() + class RecipeFromSourceResponseSerializer(serializers.Serializer): recipe = SourceImportRecipeSerializer(default=None) - images = serializers.ListField( default=[]) + images = serializers.ListField(child=serializers.CharField(),default=[], allow_null=False) error = serializers.BooleanField(default=False) msg = serializers.CharField(max_length=1024, default='') - duplicate = serializers.ListField(child=serializers.IntegerField(), default=[]) + duplicates = serializers.ListField(child=SourceImportDuplicateSerializer(), default=[], allow_null=False) class ImportImageSerializer(serializers.Serializer): diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 35264d189..a0aed0dd7 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -1754,7 +1754,7 @@ class RecipeUrlImportView(APIView): if scrape: response['recipe'] = helper.get_from_scraper(scrape, request) response['images'] = list(dict.fromkeys(get_images_from_soup(scrape.soup, url))) - response['duplicate'] = Recipe.objects.filter(source_url=url).values_list('id', flat=True).all() + response['duplicates'] = Recipe.objects.filter(space=request.space, source_url=url).values('id', 'name').all() return Response(RecipeFromSourceResponseSerializer(context={'request': request}).to_representation(response), status=status.HTTP_200_OK) else: diff --git a/vue3/src/locales/ar.json b/vue3/src/locales/ar.json index ca6c2ca81..79cc86fb1 100644 --- a/vue3/src/locales/ar.json +++ b/vue3/src/locales/ar.json @@ -43,6 +43,7 @@ "Color": "", "Coming_Soon": "", "Completed": "", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "", @@ -80,6 +81,8 @@ "Documentation": "", "Download": "", "Drag_Here_To_Delete": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Edit_Food": "", "Edit_Keyword": "", @@ -284,6 +287,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "", "Step": "", "Step_Name": "", diff --git a/vue3/src/locales/bg.json b/vue3/src/locales/bg.json index f4bdcee3e..c1a7f5479 100644 --- a/vue3/src/locales/bg.json +++ b/vue3/src/locales/bg.json @@ -43,6 +43,7 @@ "Color": "Цвят", "Coming_Soon": "Очаквайте скоро", "Completed": "Завършено", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Копиране", @@ -77,6 +78,8 @@ "Documentation": "Документация", "Download": "Изтегляне", "Drag_Here_To_Delete": "Плъзнете тук, за да изтриете", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Редактиране", "Edit_Food": "Редактиране на храна", "Edit_Keyword": "Редактиране на ключова дума", @@ -277,6 +280,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Начален ден от седмицата", "Step": "Стъпка", "Step_Name": "Стъпка Име", diff --git a/vue3/src/locales/ca.json b/vue3/src/locales/ca.json index 8af7e4130..71e594dc5 100644 --- a/vue3/src/locales/ca.json +++ b/vue3/src/locales/ca.json @@ -55,6 +55,7 @@ "Coming_Soon": "", "Comments_setting": "", "Completed": "", + "Continue": "", "Conversion": "", "ConversionsHelp": "", "CookLog": "", @@ -112,6 +113,8 @@ "Documentation": "", "Download": "", "Drag_Here_To_Delete": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Edit_Food": "", "Edit_Keyword": "Editeu paraula clau", @@ -363,6 +366,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "", + "Split": "", "Split_All_Steps": "", "StartDate": "", "Starting_Day": "", diff --git a/vue3/src/locales/cs.json b/vue3/src/locales/cs.json index 4f571b0c3..fc1e75ccd 100644 --- a/vue3/src/locales/cs.json +++ b/vue3/src/locales/cs.json @@ -55,6 +55,7 @@ "Coming_Soon": "Již brzy", "Comments_setting": "Zobrazit komentáře", "Completed": "Dokončeno", + "Continue": "", "Conversion": "Převod", "ConversionsHelp": "", "CookLog": "", @@ -112,6 +113,8 @@ "Documentation": "Dokumentace", "Download": "Stáhnout", "Drag_Here_To_Delete": "Přesunutím sem smazat", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Upravit", "Edit_Food": "Upravit potravinu", "Edit_Keyword": "Upravit štítek", @@ -359,6 +362,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Některá kosmetická nastavení mohou měnit správci prostoru a budou mít přednost před nastavením klienta pro daný prostor.", + "Split": "", "Split_All_Steps": "Rozdělit každý řádek do samostatného kroku.", "StartDate": "Počáteční datum", "Starting_Day": "První den v týdnu", diff --git a/vue3/src/locales/da.json b/vue3/src/locales/da.json index 93c56f529..09f99e1d6 100644 --- a/vue3/src/locales/da.json +++ b/vue3/src/locales/da.json @@ -54,6 +54,7 @@ "Coming_Soon": "Kommer snart", "Comments_setting": "Vis kommentarer", "Completed": "Afsluttet", + "Continue": "", "Conversion": "Konversion", "ConversionsHelp": "", "CookLog": "", @@ -103,6 +104,8 @@ "Documentation": "Dokumentation", "Download": "Download", "Drag_Here_To_Delete": "Træk herhen for at slette", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Rediger", "Edit_Food": "Rediger mad", "Edit_Keyword": "Rediger nøgleord", @@ -337,6 +340,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Opdel rækker i separate trin.", "StartDate": "Startdato", "Starting_Day": "Første dag på ugen", diff --git a/vue3/src/locales/de.json b/vue3/src/locales/de.json index 07296c052..33230319d 100644 --- a/vue3/src/locales/de.json +++ b/vue3/src/locales/de.json @@ -56,6 +56,7 @@ "Coming_Soon": "Bald verfügbar", "Comments_setting": "Kommentare anzeigen", "Completed": "Fertig", + "Continue": "Weiter", "Conversion": "Umrechnung", "ConversionsHelp": "Mit Umrechnungen kann die Menge einens Lebensmittels in verschiedenen Einheiten ausgerechnet werden. Aktuell wird dies nur zur berechnung von Eigenschaften verwendet, später jedoch sollen auch andere Funktionen von Tandoor davon profitieren.", "CookLog": "Kochprotokoll", @@ -114,6 +115,8 @@ "Documentation": "Dokumentation", "Download": "Herunterladen", "Drag_Here_To_Delete": "Hierher ziehen zum Löschen", + "Duplicate": "Duplikat", + "DuplicateFoundInfo": "Ein Rezept mit dieser URL wurde bereits in deinem Space gefunden. Trotzdem fortfahren?", "Edit": "Bearbeiten", "Edit_Food": "Lebensmittel bearbeiten", "Edit_Keyword": "Schlagwort bearbeiten", @@ -366,6 +369,7 @@ "SpaceMembers": "Space Mitglieder", "SpaceSettings": "Space Einstellungen", "Space_Cosmetic_Settings": "Einige optische Einstellungen können von Administratoren des Bereichs geändert werden und setzen die Client-Einstellungen für diesen Bereich außer Kraft.", + "Split": "Aufteilen", "Split_All_Steps": "Teile alle Zeilen in separate Schritte auf.", "StartDate": "Startdatum", "Starting_Day": "Wochenbeginn am", diff --git a/vue3/src/locales/el.json b/vue3/src/locales/el.json index 4a3ad2dae..eda43c80a 100644 --- a/vue3/src/locales/el.json +++ b/vue3/src/locales/el.json @@ -53,6 +53,7 @@ "Coming_Soon": "Σύντομα διαθέσιμο", "Comments_setting": "Εμφάνιση σχολίων", "Completed": "Ολοκληρωμένο", + "Continue": "", "Conversion": "Μετατροπή", "ConversionsHelp": "", "CookLog": "", @@ -102,6 +103,8 @@ "Documentation": "Τεκμηρίωση", "Download": "Λήψη", "Drag_Here_To_Delete": "Σύρετε εδώ για διαγραφή", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Τροποποίηση", "Edit_Food": "Τροποποίηση φαγητού", "Edit_Keyword": "Τροποποίηση λέξης-κλειδί", @@ -329,6 +332,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Διαχωρισμός όλων των γραμμών σε χωριστά βήματα.", "Starting_Day": "Πρώτη μέρα της εβδομάδας", "Step": "Βήμα", diff --git a/vue3/src/locales/en.json b/vue3/src/locales/en.json index 7fb636757..bce4f224c 100644 --- a/vue3/src/locales/en.json +++ b/vue3/src/locales/en.json @@ -55,6 +55,7 @@ "Coming_Soon": "Coming-Soon", "Comments_setting": "Show Comments", "Completed": "Completed", + "Continue": "Continue", "Conversion": "Conversion", "ConversionsHelp": "With conversions you can calculate the amount of a food in different units. Currently this is only used for property calculation, later it might also be used in other parts of tandoor. ", "CookLog": "Cook Log", @@ -113,6 +114,8 @@ "Documentation": "Documentation", "Download": "Download", "Drag_Here_To_Delete": "Drag here to delete", + "Duplicate": "Duplicate", + "DuplicateFoundInfo": "A recipe with this URL was already found in your space. Continue anyway?", "Edit": "Edit", "Edit_Food": "Edit Food", "Edit_Keyword": "Edit Keyword", @@ -365,6 +368,7 @@ "SpaceMembers": "Space Members", "SpaceSettings": "Space Settings", "Space_Cosmetic_Settings": "Some cosmetic settings can be changed by space administrators and will override client settings for that space.", + "Split": "Split", "Split_All_Steps": "Split all rows into separate steps.", "StartDate": "Start Date", "Starting_Day": "Starting day of the week", diff --git a/vue3/src/locales/es.json b/vue3/src/locales/es.json index b57f502e9..65a716224 100644 --- a/vue3/src/locales/es.json +++ b/vue3/src/locales/es.json @@ -55,6 +55,7 @@ "Coming_Soon": "Próximamente", "Comments_setting": "Mostrar Comentarios", "Completed": "Completado", + "Continue": "", "Conversion": "Conversión", "ConversionsHelp": "", "CookLog": "", @@ -113,6 +114,8 @@ "Documentation": "Documentación", "Download": "Descarga", "Drag_Here_To_Delete": "Arrastrar aquí para eliminar", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Editar", "Edit_Food": "Editar ingediente", "Edit_Keyword": "Editar palabra clave", @@ -362,6 +365,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Algunos ajustes de apariencia pueden ser cambiados por los administradores del espacio y anularán los ajustes del cliente para ese espacio.", + "Split": "", "Split_All_Steps": "Dividir todas las filas en pasos separados.", "StartDate": "Fecha de Inicio", "Starting_Day": "Día de comienzo de la semana", diff --git a/vue3/src/locales/fi.json b/vue3/src/locales/fi.json index a8cb1c05c..ea7ce3c05 100644 --- a/vue3/src/locales/fi.json +++ b/vue3/src/locales/fi.json @@ -29,6 +29,7 @@ "Close": "Sulje", "Color": "Väri", "Coming_Soon": "Tulossa pian", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Kopioi", @@ -56,6 +57,8 @@ "Disable_Amount": "Poista Määrä käytöstä", "Download": "Lataa", "Drag_Here_To_Delete": "Vedä tänne poistaaksesi", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Muokkaa", "Edit_Food": "Muokkaa ruokaa", "Edit_Keyword": "Muokkaa avainsanaa", @@ -206,6 +209,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Viikon aloituspäivä", "Step": "Vaihe", "Step_Name": "Vaiheen Nimi", diff --git a/vue3/src/locales/fr.json b/vue3/src/locales/fr.json index 5de7153ef..0742c579b 100644 --- a/vue3/src/locales/fr.json +++ b/vue3/src/locales/fr.json @@ -54,6 +54,7 @@ "Coming_Soon": "Bientôt disponible", "Comments_setting": "Montrer les commentaires", "Completed": "Achevé", + "Continue": "", "Conversion": "Conversion", "ConversionsHelp": "", "CookLog": "", @@ -112,6 +113,8 @@ "Documentation": "Documentation", "Download": "Télécharger", "Drag_Here_To_Delete": "Glissez ici pour supprimer", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Modifier", "Edit_Food": "Modifier l’aliment", "Edit_Keyword": "Modifier le mot-clé", @@ -363,6 +366,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Certains paramètres cosmétiques peuvent être modifiés par un administrateur de l'espace et seront prioritaires sur les paramètres des utilisateurs pour cet espace.", + "Split": "", "Split_All_Steps": "Diviser toutes les lignes en étapes séparées.", "StartDate": "Date de début", "Starting_Day": "Jour de début de la semaine", diff --git a/vue3/src/locales/he.json b/vue3/src/locales/he.json index 8ffb8ffb3..318481c6f 100644 --- a/vue3/src/locales/he.json +++ b/vue3/src/locales/he.json @@ -55,6 +55,7 @@ "Coming_Soon": "בקרוב", "Comments_setting": "הצג תגובות", "Completed": "הושלם", + "Continue": "", "Conversion": "עברית", "ConversionsHelp": "", "CookLog": "", @@ -113,6 +114,8 @@ "Documentation": "תיעוד", "Download": "הורדה", "Drag_Here_To_Delete": "משוך לכאן למחיקה", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "ערוך", "Edit_Food": "ערוך אוכל", "Edit_Keyword": "עדכן מילת מפתח", @@ -364,6 +367,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "חלק מהגדרות הקוסמטיות יכולות להיות מעודכנות על ידי מנהל המרחב וידרסו את הגדרות הקליינט עבור מרחב זה.", + "Split": "", "Split_All_Steps": "פצל את כל השורות לצעדים נפרדים.", "StartDate": "תאריך התחלה", "Starting_Day": "יום תחילת השבוע", diff --git a/vue3/src/locales/hu.json b/vue3/src/locales/hu.json index 96875fa5e..a79ac1a54 100644 --- a/vue3/src/locales/hu.json +++ b/vue3/src/locales/hu.json @@ -54,6 +54,7 @@ "Coming_Soon": "Hamarosan", "Comments_setting": "Hozzászólások megjelenítése", "Completed": "Kész", + "Continue": "", "Conversion": "Konverzió", "ConversionsHelp": "", "CookLog": "", @@ -101,6 +102,8 @@ "Documentation": "Dokumentáció", "Download": "Letöltés", "Drag_Here_To_Delete": "Törléshez húzza ide", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Szerkesztés", "Edit_Food": "Alapanyag szerkesztése", "Edit_Keyword": "Kulcsszó szerkesztése", @@ -330,6 +333,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Ossza fel az összes sort különálló lépésekbe.", "StartDate": "Kezdés dátuma", "Starting_Day": "A hét kezdőnapja", diff --git a/vue3/src/locales/hy.json b/vue3/src/locales/hy.json index e2534a680..7c6904451 100644 --- a/vue3/src/locales/hy.json +++ b/vue3/src/locales/hy.json @@ -21,6 +21,7 @@ "Categories": "", "Category": "", "Close": "", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "", @@ -41,6 +42,8 @@ "DeviceSettings": "", "DeviceSettingsHelp": "", "Download": "Ներբեռնել", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Edit_Food": "Խմբագրել սննդամթերքը", "Edit_Keyword": "Խմբագրել բանալի բառը", @@ -147,6 +150,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Step": "", "Step_start_time": "Քայլի սկսելու ժամանակը", "Steps": "", diff --git a/vue3/src/locales/id.json b/vue3/src/locales/id.json index e84eea402..a38fe716c 100644 --- a/vue3/src/locales/id.json +++ b/vue3/src/locales/id.json @@ -47,6 +47,7 @@ "Coming_Soon": "", "Comments_setting": "", "Completed": "", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Salin", @@ -91,6 +92,8 @@ "Documentation": "", "Download": "Unduh", "Drag_Here_To_Delete": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Sunting", "Edit_Food": "Sunting Makanan", "Edit_Keyword": "Rubah Kata Kunci", @@ -307,6 +310,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "", "Step": "Melangkah", "Step_Name": "Nama Langkah", diff --git a/vue3/src/locales/is.json b/vue3/src/locales/is.json index bcfaa2dfb..7bcf25d3d 100644 --- a/vue3/src/locales/is.json +++ b/vue3/src/locales/is.json @@ -55,6 +55,7 @@ "Coming_Soon": "", "Comments_setting": "", "Completed": "", + "Continue": "", "Conversion": "", "ConversionsHelp": "", "CookLog": "", @@ -112,6 +113,8 @@ "Documentation": "", "Download": "", "Drag_Here_To_Delete": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Edit_Food": "", "Edit_Keyword": "", @@ -362,6 +365,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "", + "Split": "", "Split_All_Steps": "", "StartDate": "", "Starting_Day": "", diff --git a/vue3/src/locales/it.json b/vue3/src/locales/it.json index 07b7c92aa..b1673ec3d 100644 --- a/vue3/src/locales/it.json +++ b/vue3/src/locales/it.json @@ -51,6 +51,7 @@ "Coming_Soon": "In-Arrivo", "Comments_setting": "Mostra commenti", "Completed": "Completato", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Copia", @@ -96,6 +97,8 @@ "Documentation": "Documentazione", "Download": "Scarica", "Drag_Here_To_Delete": "Sposta qui per eliminare", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Modifica", "Edit_Food": "Modifica alimento", "Edit_Keyword": "Modifica parola chiave", @@ -315,6 +318,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Divide tutte le righe in step separati.", "Starting_Day": "Giorno di inizio della settimana", "Step": "Step", diff --git a/vue3/src/locales/lt.json b/vue3/src/locales/lt.json index 4a0cf4fe4..475d3ffa1 100644 --- a/vue3/src/locales/lt.json +++ b/vue3/src/locales/lt.json @@ -54,6 +54,7 @@ "Coming_Soon": "", "Comments_setting": "", "Completed": "", + "Continue": "", "Conversion": "", "ConversionsHelp": "", "CookLog": "", @@ -103,6 +104,8 @@ "Documentation": "", "Download": "", "Drag_Here_To_Delete": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Edit_Food": "", "Edit_Keyword": "Redaguoti raktažodį", @@ -335,6 +338,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "", "StartDate": "", "Starting_Day": "", diff --git a/vue3/src/locales/nb_NO.json b/vue3/src/locales/nb_NO.json index a98d7efb3..c06ddb9e9 100644 --- a/vue3/src/locales/nb_NO.json +++ b/vue3/src/locales/nb_NO.json @@ -52,6 +52,7 @@ "Coming_Soon": "Kommer snart", "Comments_setting": "", "Completed": "Fullført", + "Continue": "", "Conversion": "Omregn enhet", "ConversionsHelp": "", "CookLog": "", @@ -100,6 +101,8 @@ "Documentation": "", "Download": "Last ned", "Drag_Here_To_Delete": "Dra her for å slette", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Rediger", "Edit_Food": "Rediger Matrett", "Edit_Keyword": "Rediger nøkkelord", @@ -327,6 +330,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "", "Starting_Day": "Dag uken skal state på", "Step": "Steg", diff --git a/vue3/src/locales/nl.json b/vue3/src/locales/nl.json index e05cb4565..8fe8d06b1 100644 --- a/vue3/src/locales/nl.json +++ b/vue3/src/locales/nl.json @@ -55,6 +55,7 @@ "Coming_Soon": "Binnenkort beschikbaar", "Comments_setting": "Commentaar weergeven", "Completed": "Voltooid", + "Continue": "", "Conversion": "Omrekening", "ConversionsHelp": "", "CookLog": "", @@ -104,6 +105,8 @@ "Documentation": "Documentatie", "Download": "Download", "Drag_Here_To_Delete": "Sleep hierheen om te verwijderen", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Bewerken", "Edit_Food": "Bewerk Eten", "Edit_Keyword": "Bewerk Etiket", @@ -331,6 +334,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Splits alle rijen in aparte stappen.", "Starting_Day": "Eerste dag van de week", "Step": "Stap", diff --git a/vue3/src/locales/pl.json b/vue3/src/locales/pl.json index b53682f78..d77ae21fc 100644 --- a/vue3/src/locales/pl.json +++ b/vue3/src/locales/pl.json @@ -56,6 +56,7 @@ "Coming_Soon": "Dostępne wkrótce", "Comments_setting": "Pokaż komentarze", "Completed": "Zakończone", + "Continue": "", "Conversion": "Konwersja", "ConversionsHelp": "", "CookLog": "", @@ -114,6 +115,8 @@ "Documentation": "Dokumentacja", "Download": "Pobieranie", "Drag_Here_To_Delete": "Przeciągnij tutaj, aby usunąć", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Edytuj", "Edit_Food": "Edytuj żywność", "Edit_Keyword": "Edytuj słowo kluczowe", @@ -365,6 +368,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Administratorzy przestrzeni mogą zmienić niektóre ustawienia kosmetyczne, które zastąpią ustawienia klienta dla tej przestrzeni.", + "Split": "", "Split_All_Steps": "Traktuj każdy wiersz jako osobne kroki.", "StartDate": "Data początkowa", "Starting_Day": "Dzień rozpoczęcia tygodnia", diff --git a/vue3/src/locales/pt.json b/vue3/src/locales/pt.json index 1217e5e83..a15e802ff 100644 --- a/vue3/src/locales/pt.json +++ b/vue3/src/locales/pt.json @@ -42,6 +42,7 @@ "Color": "Cor", "Coming_Soon": "", "Completed": "Completo", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Copiar", @@ -81,6 +82,8 @@ "Disable_Amount": "Desativar quantidade", "Download": "Transferência", "Drag_Here_To_Delete": "Arraste para aqui para eliminar", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Editar", "Edit_Food": "Editar comida", "Edit_Keyword": "Editar Palavra Chave", @@ -271,6 +274,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Dia de início da semana", "Step": "Passo", "Step_Name": "Nome do Passo", diff --git a/vue3/src/locales/pt_BR.json b/vue3/src/locales/pt_BR.json index f21312ea2..fadd2d9c2 100644 --- a/vue3/src/locales/pt_BR.json +++ b/vue3/src/locales/pt_BR.json @@ -54,6 +54,7 @@ "Coming_Soon": "Em breve", "Comments_setting": "Mostrar Comentários", "Completed": "Finalizado", + "Continue": "", "Conversion": "Conversão", "ConversionsHelp": "", "CookLog": "", @@ -110,6 +111,8 @@ "Documentation": "Documentação", "Download": "Baixar", "Drag_Here_To_Delete": "Arraste aqui para deletar", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Editar", "Edit_Food": "Editar Comida", "Edit_Keyword": "Editar palavra-chave", @@ -348,6 +351,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "StartDate": "Data Início", "Starting_Day": "Dia de início da semana", "Step": "Etapa", diff --git a/vue3/src/locales/ro.json b/vue3/src/locales/ro.json index 8dc669169..2a73394c0 100644 --- a/vue3/src/locales/ro.json +++ b/vue3/src/locales/ro.json @@ -52,6 +52,7 @@ "Coming_Soon": "În curând", "Comments_setting": "Afișează comentarii", "Completed": "Completat", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Copie", @@ -98,6 +99,8 @@ "Documentation": "Documentație", "Download": "Descarcă", "Drag_Here_To_Delete": "Mută aici pentru a șterge", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Editează", "Edit_Food": "Editare mâncare", "Edit_Keyword": "Editează cuvânt cheie", @@ -319,6 +322,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Split_All_Steps": "Împărțiți toate rândurile în pași separați.", "Starting_Day": "Ziua de început a săptămânii", "Step": "Pas", diff --git a/vue3/src/locales/ru.json b/vue3/src/locales/ru.json index 64ab4e758..9d134e53d 100644 --- a/vue3/src/locales/ru.json +++ b/vue3/src/locales/ru.json @@ -37,6 +37,7 @@ "Color": "Цвет", "Coming_Soon": "Скоро", "Completed": "Завершено", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Копировать", @@ -71,6 +72,8 @@ "Documentation": "Документация", "Download": "Загрузить", "Drag_Here_To_Delete": "Переместить для удаления", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Редактировать", "Edit_Food": "Редактировать еду", "Edit_Keyword": "Редактировать ключевое слово", @@ -256,6 +259,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Начальный день недели", "Step": "Шаг", "Step_Name": "Имя шага", diff --git a/vue3/src/locales/sl.json b/vue3/src/locales/sl.json index f0321b132..f5f1b4c80 100644 --- a/vue3/src/locales/sl.json +++ b/vue3/src/locales/sl.json @@ -38,6 +38,7 @@ "Color": "Barva", "Coming_Soon": "Kmalu", "Completed": "Končano", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Kopiraj", @@ -71,6 +72,8 @@ "Disable_Amount": "Onemogoči količino", "Download": "Prenesi", "Drag_Here_To_Delete": "Povleci sem za izbris", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Uredi", "Edit_Food": "Uredi hrano", "Edit_Keyword": "Uredi ključno besedo", @@ -246,6 +249,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Začetni dan v tednu", "Step": "Korak", "Step_Name": "Ime koraka", diff --git a/vue3/src/locales/sv.json b/vue3/src/locales/sv.json index a26f9e5fb..766def8e5 100644 --- a/vue3/src/locales/sv.json +++ b/vue3/src/locales/sv.json @@ -56,6 +56,7 @@ "Coming_Soon": "Kommer snart", "Comments_setting": "Visa Kommentarer", "Completed": "Avslutad", + "Continue": "", "Conversion": "Omvandling", "ConversionsHelp": "", "CookLog": "", @@ -114,6 +115,8 @@ "Documentation": "Dokumentation", "Download": "Ladda ned", "Drag_Here_To_Delete": "Dra hit för att radera", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Redigera", "Edit_Food": "Redigera livsmedel", "Edit_Keyword": "Redigera nyckelord", @@ -365,6 +368,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Vissa kosmetiska inställningar kan ändras av hushålls-administratörer och skriver över klientinställningar för det hushållet.", + "Split": "", "Split_All_Steps": "Dela upp alla rader i separata steg.", "StartDate": "Startdatum", "Starting_Day": "Startdag i veckan", diff --git a/vue3/src/locales/tr.json b/vue3/src/locales/tr.json index cfcc53fb6..a45dec517 100644 --- a/vue3/src/locales/tr.json +++ b/vue3/src/locales/tr.json @@ -55,6 +55,7 @@ "Coming_Soon": "Yakında Gelecek", "Comments_setting": "Yorumları Göster", "Completed": "Tamamlandı", + "Continue": "", "Conversion": "Dönüşüm", "ConversionsHelp": "", "CookLog": "", @@ -113,6 +114,8 @@ "Documentation": "Dokümantasyon", "Download": "İndir", "Drag_Here_To_Delete": "Silmek için buraya sürükleyin", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Düzenle", "Edit_Food": "Yiyeceği Düzenle", "Edit_Keyword": "Anahtar Kelimeyi Düzenle", @@ -364,6 +367,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "Bazı kozmetik ayarlar alan yöneticileri tarafından değiştirilebilir ve o alanın istemci ayarlarını geçersiz kılar.", + "Split": "", "Split_All_Steps": "Tüm satırları ayrı adımlara bölün.", "StartDate": "Başlangıç Tarihi", "Starting_Day": "Haftanın başlangıç günü", diff --git a/vue3/src/locales/uk.json b/vue3/src/locales/uk.json index 9d2dc7ad5..f3c558b45 100644 --- a/vue3/src/locales/uk.json +++ b/vue3/src/locales/uk.json @@ -46,6 +46,7 @@ "Color": "Колір", "Coming_Soon": "", "Completed": "Виконано", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "Копіювати", @@ -86,6 +87,8 @@ "Documentation": "", "Download": "Скачати", "Drag_Here_To_Delete": "Перемістіть сюди, щоб видалити", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "Редагувати", "Edit_Food": "Редагувати Їжу", "Edit_Keyword": "Редагувати Ключове слово", @@ -292,6 +295,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Starting_Day": "Початковий день тижня", "Step": "Крок", "Step_Name": "Ім'я Кроку", diff --git a/vue3/src/locales/zh_Hans.json b/vue3/src/locales/zh_Hans.json index 66cc51387..044eb0725 100644 --- a/vue3/src/locales/zh_Hans.json +++ b/vue3/src/locales/zh_Hans.json @@ -54,6 +54,7 @@ "Coming_Soon": "即将到来", "Comments_setting": "显示评论", "Completed": "完成", + "Continue": "", "Conversion": "转换", "ConversionsHelp": "", "CookLog": "", @@ -110,6 +111,8 @@ "Documentation": "文档", "Download": "下载", "Drag_Here_To_Delete": "拖动此处可删除", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "编辑", "Edit_Food": "编辑食物", "Edit_Keyword": "编辑关键词", @@ -358,6 +361,7 @@ "SpaceMembers": "", "SpaceSettings": "", "Space_Cosmetic_Settings": "空间管理员可以更改某些装饰设置,并将覆盖该空间的客户端设置。", + "Split": "", "Split_All_Steps": "将所有行拆分为单独的步骤。", "StartDate": "开始日期", "Starting_Day": "一周中的第一天", diff --git a/vue3/src/locales/zh_Hant.json b/vue3/src/locales/zh_Hant.json index 4d61d4449..ae38f9346 100644 --- a/vue3/src/locales/zh_Hant.json +++ b/vue3/src/locales/zh_Hant.json @@ -18,6 +18,7 @@ "Categories": "", "Category": "", "Close": "", + "Continue": "", "ConversionsHelp": "", "CookLog": "", "Copy": "", @@ -33,6 +34,8 @@ "DeviceSettings": "", "DeviceSettingsHelp": "", "Download": "", + "Duplicate": "", + "DuplicateFoundInfo": "", "Edit": "", "Email": "", "Energy": "", @@ -117,6 +120,7 @@ "SpaceMemberHelp": "", "SpaceMembers": "", "SpaceSettings": "", + "Split": "", "Step": "", "Step_start_time": "步驟開始時間", "Steps": "", diff --git a/vue3/src/openapi/.openapi-generator/FILES b/vue3/src/openapi/.openapi-generator/FILES index cde338439..c04b52698 100644 --- a/vue3/src/openapi/.openapi-generator/FILES +++ b/vue3/src/openapi/.openapi-generator/FILES @@ -134,6 +134,7 @@ models/ShareLink.ts models/ShoppingListEntry.ts models/ShoppingListEntryBulk.ts models/ShoppingListRecipe.ts +models/SourceImportDuplicate.ts models/SourceImportFood.ts models/SourceImportIngredient.ts models/SourceImportKeyword.ts diff --git a/vue3/src/openapi/models/RecipeFromSourceResponse.ts b/vue3/src/openapi/models/RecipeFromSourceResponse.ts index 67ff3ddfc..35435fab3 100644 --- a/vue3/src/openapi/models/RecipeFromSourceResponse.ts +++ b/vue3/src/openapi/models/RecipeFromSourceResponse.ts @@ -13,6 +13,13 @@ */ import { mapValues } from '../runtime'; +import type { SourceImportDuplicate } from './SourceImportDuplicate'; +import { + SourceImportDuplicateFromJSON, + SourceImportDuplicateFromJSONTyped, + SourceImportDuplicateToJSON, + SourceImportDuplicateToJSONTyped, +} from './SourceImportDuplicate'; import type { SourceImportRecipe } from './SourceImportRecipe'; import { SourceImportRecipeFromJSON, @@ -35,10 +42,10 @@ export interface RecipeFromSourceResponse { recipe?: SourceImportRecipe; /** * - * @type {Array} + * @type {Array} * @memberof RecipeFromSourceResponse */ - images?: Array; + images?: Array; /** * * @type {boolean} @@ -53,10 +60,10 @@ export interface RecipeFromSourceResponse { msg?: string; /** * - * @type {Array} + * @type {Array} * @memberof RecipeFromSourceResponse */ - duplicate?: Array; + duplicates?: Array; } /** @@ -80,7 +87,7 @@ export function RecipeFromSourceResponseFromJSONTyped(json: any, ignoreDiscrimin 'images': json['images'] == null ? undefined : json['images'], 'error': json['error'] == null ? undefined : json['error'], 'msg': json['msg'] == null ? undefined : json['msg'], - 'duplicate': json['duplicate'] == null ? undefined : json['duplicate'], + 'duplicates': json['duplicates'] == null ? undefined : ((json['duplicates'] as Array).map(SourceImportDuplicateFromJSON)), }; } @@ -99,7 +106,7 @@ export function RecipeFromSourceResponseToJSONTyped(value?: RecipeFromSourceResp 'images': value['images'], 'error': value['error'], 'msg': value['msg'], - 'duplicate': value['duplicate'], + 'duplicates': value['duplicates'] == null ? undefined : ((value['duplicates'] as Array).map(SourceImportDuplicateToJSON)), }; } diff --git a/vue3/src/openapi/models/SourceImportDuplicate.ts b/vue3/src/openapi/models/SourceImportDuplicate.ts new file mode 100644 index 000000000..fb1cebab5 --- /dev/null +++ b/vue3/src/openapi/models/SourceImportDuplicate.ts @@ -0,0 +1,74 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface SourceImportDuplicate + */ +export interface SourceImportDuplicate { + /** + * + * @type {number} + * @memberof SourceImportDuplicate + */ + id?: number; + /** + * + * @type {string} + * @memberof SourceImportDuplicate + */ + name: string; +} + +/** + * Check if a given object implements the SourceImportDuplicate interface. + */ +export function instanceOfSourceImportDuplicate(value: object): value is SourceImportDuplicate { + if (!('name' in value) || value['name'] === undefined) return false; + return true; +} + +export function SourceImportDuplicateFromJSON(json: any): SourceImportDuplicate { + return SourceImportDuplicateFromJSONTyped(json, false); +} + +export function SourceImportDuplicateFromJSONTyped(json: any, ignoreDiscriminator: boolean): SourceImportDuplicate { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'], + }; +} + +export function SourceImportDuplicateToJSON(json: any): SourceImportDuplicate { + return SourceImportDuplicateToJSONTyped(json, false); +} + +export function SourceImportDuplicateToJSONTyped(value?: SourceImportDuplicate | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'id': value['id'], + 'name': value['name'], + }; +} + diff --git a/vue3/src/openapi/models/index.ts b/vue3/src/openapi/models/index.ts index b5f07cced..53f3d81bb 100644 --- a/vue3/src/openapi/models/index.ts +++ b/vue3/src/openapi/models/index.ts @@ -131,6 +131,7 @@ export * from './ShareLink'; export * from './ShoppingListEntry'; export * from './ShoppingListEntryBulk'; export * from './ShoppingListRecipe'; +export * from './SourceImportDuplicate'; export * from './SourceImportFood'; export * from './SourceImportIngredient'; export * from './SourceImportKeyword'; diff --git a/vue3/src/pages/RecipeImportPage.vue b/vue3/src/pages/RecipeImportPage.vue index a0b063b41..5fac0872a 100644 --- a/vue3/src/pages/RecipeImportPage.vue +++ b/vue3/src/pages/RecipeImportPage.vue @@ -28,6 +28,15 @@ + + + {{ $t('Duplicate') }} + {{ $t('DuplicateFoundInfo') }} + + {{ r.name }} + + {{ $t('Continue') }} + @@ -50,18 +59,47 @@ - - + {{ k.label }} - - test4 + + + + Auto Sort + Split All + Merge All + + + + + + + + + #{{ i + 1 }} + + + + + {{ $t('Delete') }} + {{ $t('Split') }} + + + + + + + + + + Import @@ -103,12 +141,18 @@ function loadRecipeFromUrl() { let api = new ApiApi() api.apiRecipeFromSourceCreate({recipeFromSource: {url: importUrl.value}}).then(r => { importResponse.value = r - stepper.value = "2" + if (r.duplicates.length == 0) { + // automatically continue only if no duplicates were found + stepper.value = "2" + } }).catch(err => { useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err) }) } +/** + * create recipe in database + */ function createRecipeFromImport() { let api = new ApiApi() console.log(importResponse.value)