From f0a2f28f8e735ced442f5827241be5dee6e7650d Mon Sep 17 00:00:00 2001 From: Kobe Date: Tue, 27 May 2025 11:52:51 +0200 Subject: [PATCH] fix folder rename not retaining files --- routes/__pycache__/room_files.cpython-313.pyc | Bin 36917 -> 37698 bytes routes/room_files.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/routes/__pycache__/room_files.cpython-313.pyc b/routes/__pycache__/room_files.cpython-313.pyc index 3c18ed3ae704540f2a44c631a7112b288130d2a5..e94e7fde7e934a124a1814e2d35b2c48348a03ee 100644 GIT binary patch delta 1126 zcmZuwZ%kWN6u-Bx@4fzc?JE|fw9pPH){aUUtOjslkS!C)%8*i4VrHrIkycB~ZZY6s zQ5GXb2x!hH5|c7N=$09Sd6_XW*@u1Nn`>rl)@*DfCK{s=?C{Sgy;rhC6L0c<@0{Pc z=XdTo@4lOxn%f_1%w?0wfan@p2_zu#x%oneQKT+MpR!K}<7Z=Pv15UU_=ppP^HxZo zuyXeh0>cZvawwo-sR*6JVJ>ZA9IUrWoHlKS=`I(1HD`rElMzOjthzAj>O<&d8(bZ& zgB$Hud)Q<~p~`km03T{R(HcGp`*DX!4$D^5=SC=P30q({T-DZlxbNQ>*$F)rU`M4Z zY)MrdS_lQ7LCA=XK;G%n48KVA?6BHxvQ|Zohn{ZXo>X)rZ#8_{eXqKNn?}4GxlYpw z?G2F<1+N=+&bi>rlXIOVKADXtNlBPYre+jEMrpXDO(kDf$Op_6i87svO(;ZW$)7RU zqTsE7-kwNjNzSC=(MbvliB8965+ymU%>I{{$fRdt$+QxWCTEnXY)Q*r;2fx}vk)a6 zn^K}AlbMRr`U?4(O3QR;SuF<_8|>;2Jr2!Vj|HSNEX^*?E?r){{C=b;It!w6r~Ax@ z4SCOoC-2+vZO(mT@7nIm$^Xw%0Y_uLWuv8N_ZRH``%-05sx3&hn_@xoP;WiB94t!C zg5=!v->Glgs=wnpepd>VdCp<@T?infdAV_=X-`CYTUkO??%e4|w%WXYLtnIc3pVdH z|90~F>U z;23z0*V4AnsKJ44o+rC3R5!HDii>xm8#@4|NG zd*LW0kVd^Z?a||Uc<^QjH^8w=&%1XiO&V#CxEYKy_gw}i2JF6&CRn+Ytnje#1oNL| zmKVc7!U0F-o3Rhh&NuU|lxh0AzT-}a`ahXFJ3xgiKr)9+6YwAmD H-{HRj0@*cp delta 639 zcmW-eUr19?9LMjucjvmc<~DP#HK({l*s__~Vh=Vfp(JL3TV$DGwTT2G zOB(Sbdg&p15G0K3(x?P# zaH?azIuX!dS^}6SV@MOI!#_RsIJbYy33h@{$vmSM8>SERV!Pji)tyeul0hDS<%1}BGF#B%&`1zW^YUr5&^1rxsM%W$i72Sw|t z>n660F9wo)iv$mZ@62C~ade~>EN%&ATvM$&(cjc)1sh5ON9aEQDF`GNkQ_h~0IdzQC(v#{0{}GyDmJaa3CcMx pjbUydxsV(kPDNp#cwZW0Za?c`Ynq}u$aJt(6M@w(ar)j8`wwUru`vJu diff --git a/routes/room_files.py b/routes/room_files.py index 294710c..5bd7da9 100644 --- a/routes/room_files.py +++ b/routes/room_files.py @@ -303,6 +303,23 @@ def rename_room_file(room_id): # Update RoomFile entry rf.name = new_name rf.modified = os.path.getmtime(new_path) + + # If this is a folder, update paths of all contained files and subfolders + if os.path.isdir(new_path): + old_folder_path = os.path.join(rel_path, old_name) if rel_path else old_name + new_folder_path = os.path.join(rel_path, new_name) if rel_path else new_name + + # Get all files and folders that are under the old path + contained_items = RoomFile.query.filter( + RoomFile.room_id == room_id, + RoomFile.path.like(f"{old_folder_path}%") + ).all() + + # Update their paths + for item in contained_items: + # Replace the old folder path with the new one in the item's path + item.path = item.path.replace(old_folder_path, new_folder_path, 1) + db.session.commit() return jsonify({'success': True, 'old_name': old_name, 'new_name': new_name})