Skip to content

Commit

Permalink
Merge pull request #577 from jbernal0019/master
Browse files Browse the repository at this point in the history
Fix internal server error when uploading or moving files to a shared folder
  • Loading branch information
jbernal0019 authored Sep 24, 2024
2 parents 655f05e + 2bc6ceb commit b520832
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 12 deletions.
21 changes: 15 additions & 6 deletions chris_backend/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,11 @@ def move(self, new_path):

if new_parent_path != os.path.dirname(path):
# parent folder has changed
(parent_folder, _) = ChrisFolder.objects.get_or_create(path=new_parent_path,
owner=self.owner)
try:
parent_folder = ChrisFolder.objects.get(path=new_parent_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=new_parent_path,
owner=self.owner)
self.parent_folder = parent_folder
self.save()

Expand Down Expand Up @@ -551,8 +554,11 @@ def move(self, new_path):
new_folder_path = os.path.dirname(new_path)

if new_folder_path != old_folder_path: # parent folder has changed
(parent_folder, _) = ChrisFolder.objects.get_or_create(path=new_folder_path,
owner=self.owner)
try:
parent_folder = ChrisFolder.objects.get(path=new_folder_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=new_folder_path,
owner=self.owner)
self.parent_folder = parent_folder

self.fname.name = new_path
Expand Down Expand Up @@ -831,8 +837,11 @@ def move(self, new_path):
new_folder_path = os.path.dirname(new_path)

if new_folder_path != old_folder_path: # parent folder has changed
(parent_folder, _) = ChrisFolder.objects.get_or_create(path=new_folder_path,
owner=self.owner)
try:
parent_folder = ChrisFolder.objects.get(path=new_folder_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=new_folder_path,
owner=self.owner)
self.parent_folder = parent_folder

self.fname.name = new_path
Expand Down
7 changes: 5 additions & 2 deletions chris_backend/filebrowser/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,11 @@ def create(self, validated_data):
parent_path = os.path.dirname(path)
owner = validated_data['owner']

(parent_folder, _) = ChrisFolder.objects.get_or_create(path=parent_path,
owner=owner)
try:
parent_folder = ChrisFolder.objects.get(path=parent_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=parent_path, owner=owner)

validated_data['parent'] = parent_folder
return super(FileBrowserFolderSerializer, self).create(validated_data)

Expand Down
15 changes: 11 additions & 4 deletions chris_backend/userfiles/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ def create(self, validated_data):
folder_path = os.path.dirname(upload_path)
owner = validated_data['owner']

(parent_folder, _) = ChrisFolder.objects.get_or_create(path=folder_path,
owner=owner)
try:
parent_folder = ChrisFolder.objects.get(path=folder_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=folder_path, owner=owner)

validated_data['parent_folder'] = parent_folder
user_file = UserFile(**validated_data)
user_file.fname.name = upload_path
Expand Down Expand Up @@ -74,8 +77,12 @@ def update(self, instance, validated_data):

folder_path = os.path.dirname(upload_path)
owner = instance.owner
(parent_folder, _) = ChrisFolder.objects.get_or_create(path=folder_path,
owner=owner)

try:
parent_folder = ChrisFolder.objects.get(path=folder_path)
except ChrisFolder.DoesNotExist:
parent_folder = ChrisFolder.objects.create(path=folder_path, owner=owner)

instance.parent_folder = parent_folder
instance.fname.name = upload_path

Expand Down

0 comments on commit b520832

Please sign in to comment.