diff --git a/backend/server/adventures/serializers.py b/backend/server/adventures/serializers.py
index c213169..a7c0bd2 100644
--- a/backend/server/adventures/serializers.py
+++ b/backend/server/adventures/serializers.py
@@ -8,8 +8,8 @@ from main.utils import CustomModelSerializer
class AdventureImageSerializer(CustomModelSerializer):
class Meta:
model = AdventureImage
- fields = ['id', 'image', 'adventure', 'is_primary']
- read_only_fields = ['id']
+ fields = ['id', 'image', 'adventure', 'is_primary', 'user_id']
+ read_only_fields = ['id', 'user_id']
def to_representation(self, instance):
representation = super().to_representation(instance)
@@ -25,8 +25,8 @@ class AttachmentSerializer(CustomModelSerializer):
extension = serializers.SerializerMethodField()
class Meta:
model = Attachment
- fields = ['id', 'file', 'adventure', 'extension', 'name']
- read_only_fields = ['id']
+ fields = ['id', 'file', 'adventure', 'extension', 'name', 'user_id']
+ read_only_fields = ['id', 'user_id']
def get_extension(self, obj):
return obj.file.name.split('.')[-1]
diff --git a/backend/server/adventures/views/attachment_view.py b/backend/server/adventures/views/attachment_view.py
index e83bdea..0292b16 100644
--- a/backend/server/adventures/views/attachment_view.py
+++ b/backend/server/adventures/views/attachment_view.py
@@ -34,4 +34,7 @@ class AttachmentViewSet(viewsets.ModelViewSet):
else:
return Response({"error": "User does not own this adventure"}, status=status.HTTP_403_FORBIDDEN)
- return super().create(request, *args, **kwargs)
\ No newline at end of file
+ return super().create(request, *args, **kwargs)
+
+ def perform_create(self, serializer):
+ serializer.save(user_id=self.request.user)
\ No newline at end of file
diff --git a/frontend/src/lib/components/AdventureModal.svelte b/frontend/src/lib/components/AdventureModal.svelte
index cb5a920..d6d0121 100644
--- a/frontend/src/lib/components/AdventureModal.svelte
+++ b/frontend/src/lib/components/AdventureModal.svelte
@@ -173,16 +173,27 @@
}
}
+ let selectedFile: File | null = null;
+
+ function handleFileChange(event: Event) {
+ const input = event.target as HTMLInputElement;
+ if (input.files && input.files.length) {
+ selectedFile = input.files[0];
+ console.log('Selected file:', selectedFile);
+ }
+ }
+
async function uploadAttachment(event: Event) {
event.preventDefault();
console.log('UPLOAD');
+ console.log(selectedFile);
- if (!fileInput || !fileInput.files || fileInput.files.length === 0) {
+ if (!selectedFile) {
console.error('No files selected');
return;
}
- const file = fileInput.files[0];
+ const file = selectedFile;
console.log(file);
const formData = new FormData();
@@ -962,69 +973,6 @@ it would also work to just use on:click on the MapLibre component itself. -->
{$t('adventures.upload_images_here')}
- -{$t('adventures.wiki_image_error')}
- {/if} -{$t('adventures.wiki_image_error')}
+ {/if} +