diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 888c9bca0..6e7994148 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -233,15 +233,15 @@ class FoodInheritFieldSerializer(UniqueFieldsMixin, WritableNestedModelSerialize class UserFileSerializer(serializers.ModelSerializer): created_by = UserSerializer(read_only=True) - file = serializers.FileField(write_only=True) + file = serializers.FileField(write_only=True, required=False) file_download = serializers.SerializerMethodField('get_download_link') preview = serializers.SerializerMethodField('get_preview_link') - @extend_schema_field(str) + @extend_schema_field(serializers.CharField(read_only=True)) def get_download_link(self, obj): return self.context['request'].build_absolute_uri(reverse('api_download_file', args={obj.pk})) - @extend_schema_field(str) + @extend_schema_field(serializers.CharField(read_only=True)) def get_preview_link(self, obj): try: Image.open(obj.file.file.file) diff --git a/cookbook/templates/frontend/tandoor.html b/cookbook/templates/frontend/tandoor.html index 7ed82de93..cdaba2d9a 100644 --- a/cookbook/templates/frontend/tandoor.html +++ b/cookbook/templates/frontend/tandoor.html @@ -38,6 +38,9 @@ {% vite_hmr_client %} {% vite_asset 'src/apps/tandoor/main.ts' %} + diff --git a/vue3/package.json b/vue3/package.json index 68573ec04..34b3e830f 100644 --- a/vue3/package.json +++ b/vue3/package.json @@ -17,11 +17,11 @@ "pinia": "^2.1.7", "vue": "^3.5.7", "vue-draggable-plus": "^0.6.0", - "vue-i18n": "9", + "vue-i18n": "10.0.5", "vue-router": "4", "vue-simple-calendar": "^7.1.0", "vuedraggable": "^4.1.0", - "vuetify": "^3.7.3" + "vuetify": "^3.7.6" }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.6.0", diff --git a/vue3/src/apps/tandoor/Tandoor.vue b/vue3/src/apps/tandoor/Tandoor.vue index 21fd1dbcc..f402a2665 100644 --- a/vue3/src/apps/tandoor/Tandoor.vue +++ b/vue3/src/apps/tandoor/Tandoor.vue @@ -16,7 +16,7 @@ - {{ useUserPreferenceStore().userSettings.user.displayName.charAt(0) }} + {{ useUserPreferenceStore().userSettings.user.displayName.charAt(0) }} @@ -55,7 +55,7 @@ {{ $t('Messages') }} - + @@ -83,7 +83,7 @@ - + @@ -150,8 +150,10 @@ import MessageListDialog from "@/components/dialogs/MessageListDialog.vue"; import {useUserPreferenceStore} from "@/stores/UserPreferenceStore"; import {TAutomation, TCookLog, TFood, TKeyword, TPropertyType, TSupermarket, TSupermarketCategory, TUnit, TUnitConversion, TUserFile, TViewLog} from "@/types/Models"; import NavigationDrawerContextMenu from "@/components/display/NavigationDrawerContextMenu.vue"; +import {useDjangoUrls} from "@/composables/useDjangoUrls"; const {lgAndUp} = useDisplay() +const {getDjangoUrl} = useDjangoUrls() useUserPreferenceStore() diff --git a/vue3/src/components/model_editors/RecipeEditor.vue b/vue3/src/components/model_editors/RecipeEditor.vue index f9a80b6c4..5ffab8afb 100644 --- a/vue3/src/components/model_editors/RecipeEditor.vue +++ b/vue3/src/components/model_editors/RecipeEditor.vue @@ -27,11 +27,14 @@ + {{ $t('Image')}} + + {{$t('Delete')}} + {{$t('Select')}} - {{ $t('Keywords') }} diff --git a/vue3/src/components/model_editors/UserFileEditor.vue b/vue3/src/components/model_editors/UserFileEditor.vue index 58d5ce406..81f69b771 100644 --- a/vue3/src/components/model_editors/UserFileEditor.vue +++ b/vue3/src/components/model_editors/UserFileEditor.vue @@ -1,32 +1,36 @@