Skip to content

Commit d70de21

Browse files
committed
in getOrCreateFolder, create parent folders on the way
1 parent 23cf696 commit d70de21

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

client/common/UploadProgress.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export function ProgressBar(props) {
5151
})();
5252
}, [file]);
5353

54-
async function getOrCreateFolder(folderName: string) {
54+
async function getOrCreateFolder(relativePath: string) {
5555
const fetchUrl = `${settings.base_url}${settings.folder_id}/get_or_create_folder`;
5656
const response = await fetch(fetchUrl, {
5757
method: 'POST',
@@ -60,7 +60,7 @@ export function ProgressBar(props) {
6060
'X-CSRFToken': settings.csrf_token,
6161
},
6262
body: JSON.stringify({
63-
name: folderName,
63+
relative_path: relativePath,
6464
}),
6565
});
6666
if (response.ok) {

finder/admin/folder.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -377,12 +377,13 @@ def add_folder(self, request, folder_id):
377377
def get_or_create_folder(self, request, folder_id):
378378
if response := self.check_for_valid_post_request(request, folder_id):
379379
return response
380-
if not (parent_folder := self.get_object(request, folder_id)):
380+
if not (folder := self.get_object(request, folder_id)):
381381
return HttpResponseNotFound(f"Folder {folder_id} not found.")
382382
body = json.loads(request.body)
383-
folder, _ = FolderModel.objects.get_or_create(
384-
name=body['name'],
385-
parent=parent_folder,
386-
defaults={'owner': request.user},
387-
)
383+
for folder_name in body['relative_path'].split('/'):
384+
folder, _ = FolderModel.objects.get_or_create(
385+
name=folder_name,
386+
parent=folder,
387+
defaults={'owner': request.user},
388+
)
388389
return JsonResponse({'folder': self.serialize_inode(folder)})

0 commit comments

Comments
 (0)