Refactor entity synchronization logic in Area, Brand, Item, RoomFunction, and Room models; improve ID handling and streamline foreign key resolution in settings

This commit is contained in:
Yaro Kasear 2025-06-25 11:23:33 -05:00
parent 7833c4828b
commit 543494120c
9 changed files with 170 additions and 96 deletions

View file

@ -424,18 +424,23 @@ def settings():
room = dict(room) # shallow copy
sid = room.get("section_id")
fid = room.get("function_id")
if sid in section_map:
room["section_id"] = section_map[sid]
if fid in function_map:
room["function_id"] = function_map[fid]
if sid is not None:
sid_key = str(sid)
if sid_key in section_map:
room["section_id"] = section_map[sid_key]
if fid is not None:
fid_key = str(fid)
if fid_key in function_map:
room["function_id"] = function_map[fid_key]
submitted_rooms.append(room)
Room.sync_from_state(
submitted_rooms=submitted_rooms,
section_map=section_map,
function_map=function_map,
section_fallbacks=[{"id": v, "name": k} for k, v in section_map.items()],
function_fallbacks=[{"id": v, "name": k} for k, v in function_map.items()]
function_map=function_map
)
print("✅ COMMIT executed.")