From c238ea913635e0750543b911105dd1261a1c9f59 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sun, 6 Jul 2025 12:52:31 +0200 Subject: [PATCH] fixed recipe export with images --- cookbook/serializer.py | 3 ++- recipes/test_settings.py | 2 +- vue3/src/openapi/models/ExportRequest.ts | 18 +++++++++--------- vue3/src/openapi/models/RecipeFlat.ts | 11 +++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 69052a305..e539d77de 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -729,6 +729,7 @@ class RecipeFlatSerializer(WritableNestedModelSerializer): class Meta: model = Recipe fields = ('id', 'name', 'image') + read_only_fields = ('id', 'name', 'image') class FoodSimpleSerializer(serializers.ModelSerializer): @@ -1772,7 +1773,7 @@ class AiImportSerializer(serializers.Serializer): class ExportRequestSerializer(serializers.Serializer): type = serializers.CharField() all = serializers.BooleanField(default=False) - recipes = RecipeFlatSerializer(many=True, default=[]) + recipes = RecipeSimpleSerializer(many=True, default=[]) custom_filter = CustomFilterSerializer(many=False, default=None, allow_null=True) diff --git a/recipes/test_settings.py b/recipes/test_settings.py index 29d5dbd8c..9c9a1e9c5 100644 --- a/recipes/test_settings.py +++ b/recipes/test_settings.py @@ -20,7 +20,7 @@ UNINSTALL_MIDDLEWARE = [ ] UNINSTALL_INSTALLED_APPS = [ - 'django.contrib.messages', 'django.contrib.sites', 'django.contrib.staticfiles', 'corsheaders', 'django_cleanup.apps.CleanupConfig', 'django_js_reverse', 'hcaptcha'] + 'django.contrib.messages', 'django.contrib.sites', 'django.contrib.staticfiles', 'corsheaders', 'django_cleanup.apps.CleanupConfig', 'hcaptcha'] # disable extras not needed for testing for x in UNINSTALL_MIDDLEWARE: diff --git a/vue3/src/openapi/models/ExportRequest.ts b/vue3/src/openapi/models/ExportRequest.ts index 638f889ef..92c7f0e1f 100644 --- a/vue3/src/openapi/models/ExportRequest.ts +++ b/vue3/src/openapi/models/ExportRequest.ts @@ -19,12 +19,12 @@ import { CustomFilterFromJSONTyped, CustomFilterToJSON, } from './CustomFilter'; -import type { RecipeFlat } from './RecipeFlat'; +import type { RecipeSimple } from './RecipeSimple'; import { - RecipeFlatFromJSON, - RecipeFlatFromJSONTyped, - RecipeFlatToJSON, -} from './RecipeFlat'; + RecipeSimpleFromJSON, + RecipeSimpleFromJSONTyped, + RecipeSimpleToJSON, +} from './RecipeSimple'; /** * @@ -46,10 +46,10 @@ export interface ExportRequest { all?: boolean; /** * - * @type {Array} + * @type {Array} * @memberof ExportRequest */ - recipes?: Array; + recipes?: Array; /** * * @type {CustomFilter} @@ -78,7 +78,7 @@ export function ExportRequestFromJSONTyped(json: any, ignoreDiscriminator: boole 'type': json['type'], 'all': json['all'] == null ? undefined : json['all'], - 'recipes': json['recipes'] == null ? undefined : ((json['recipes'] as Array).map(RecipeFlatFromJSON)), + 'recipes': json['recipes'] == null ? undefined : ((json['recipes'] as Array).map(RecipeSimpleFromJSON)), 'customFilter': json['custom_filter'] == null ? undefined : CustomFilterFromJSON(json['custom_filter']), }; } @@ -91,7 +91,7 @@ export function ExportRequestToJSON(value?: ExportRequest | null): any { 'type': value['type'], 'all': value['all'], - 'recipes': value['recipes'] == null ? undefined : ((value['recipes'] as Array).map(RecipeFlatToJSON)), + 'recipes': value['recipes'] == null ? undefined : ((value['recipes'] as Array).map(RecipeSimpleToJSON)), 'custom_filter': CustomFilterToJSON(value['customFilter']), }; } diff --git a/vue3/src/openapi/models/RecipeFlat.ts b/vue3/src/openapi/models/RecipeFlat.ts index 9070a858e..09581a3ab 100644 --- a/vue3/src/openapi/models/RecipeFlat.ts +++ b/vue3/src/openapi/models/RecipeFlat.ts @@ -30,13 +30,13 @@ export interface RecipeFlat { * @type {string} * @memberof RecipeFlat */ - name: string; + readonly name: string; /** * * @type {string} * @memberof RecipeFlat */ - image?: string; + readonly image: string | null; } /** @@ -44,6 +44,7 @@ export interface RecipeFlat { */ export function instanceOfRecipeFlat(value: object): value is RecipeFlat { if (!('name' in value) || value['name'] === undefined) return false; + if (!('image' in value) || value['image'] === undefined) return false; return true; } @@ -59,19 +60,17 @@ export function RecipeFlatFromJSONTyped(json: any, ignoreDiscriminator: boolean) 'id': json['id'] == null ? undefined : json['id'], 'name': json['name'], - 'image': json['image'] == null ? undefined : json['image'], + 'image': json['image'], }; } -export function RecipeFlatToJSON(value?: RecipeFlat | null): any { +export function RecipeFlatToJSON(value?: Omit | null): any { if (value == null) { return value; } return { 'id': value['id'], - 'name': value['name'], - 'image': value['image'], }; }