Skip to content

Commit e0ed86d

Browse files
committed
Fix KeyError in Content Manager and improve empty state handling
1 parent 673f35e commit e0ed86d

2 files changed

Lines changed: 20 additions & 6 deletions

File tree

modules/contentManager/app.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,15 @@ def edit_list(data_list, key_prefix):
6060
data = manager.unified_data[page.lower()]
6161
df = pd.DataFrame(data)
6262

63-
search = st.text_input(f"Search {page}...", "")
64-
if search:
65-
df = df[df['Name'].str.contains(search, case=False)]
63+
if not df.empty and "Name" in df.columns:
64+
search = st.text_input(f"Search {page}...", "")
65+
if search:
66+
df = df[df['Name'].str.contains(search, case=False)]
67+
68+
selected_name = st.selectbox(f"Select {page} to Edit", ["-- New --"] + df['Name'].tolist())
69+
else:
70+
selected_name = st.selectbox(f"Select {page} to Edit", ["-- New --"])
6671

67-
selected_name = st.selectbox(f"Select {page} to Edit", ["-- New --"] + df['Name'].tolist())
6872

6973
if selected_name == "-- New --":
7074
if st.button(f"Create New {page}"):

modules/contentManager/data_io.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,11 @@ def _unify_locations(self):
8484
self.unified_data["locations"] = [l.copy() for l in self.raw_data["locations.json"]]
8585

8686
def _unify_refinements(self):
87-
self.unified_data["refinements"] = [r.copy() for r in self.raw_data["refinements.json"]]
87+
self.unified_data["refinements"] = []
88+
for r in self.raw_data["refinements.json"]:
89+
rc = r.copy()
90+
rc["Name"] = r["Ability"]
91+
self.unified_data["refinements"].append(rc)
8892

8993
def _unify_stats(self):
9094
self.unified_data["stats"] = [s.copy() for s in self.raw_data["stats.json"]]
@@ -127,6 +131,12 @@ def save_all(self):
127131
if q.get("UnlocksCadences"):
128132
new_cadence_unlocks.append({ "Quest": q["Name"], "Cadences": q["UnlocksCadences"] })
129133

134+
new_refinements = []
135+
for r in self.unified_data["refinements"]:
136+
rc = { k: v for k, v in r.items() if k != "Name" }
137+
rc["Ability"] = r["Name"] # Ensure Ability is updated if Name was changed
138+
new_refinements.append(rc)
139+
130140
self._save_json("items.json", new_items)
131141
self._save_json("stat_augments.json", new_augments)
132142
self._save_json("quests.json", new_quests)
@@ -135,7 +145,7 @@ def save_all(self):
135145
self._save_json("quest_cadence_unlocks.json", new_cadence_unlocks)
136146
self._save_json("cadences.json", self.unified_data["cadences"])
137147
self._save_json("locations.json", self.unified_data["locations"])
138-
self._save_json("refinements.json", self.unified_data["refinements"])
148+
self._save_json("refinements.json", new_refinements)
139149
self._save_json("stats.json", self.unified_data["stats"])
140150

141151
def _save_json(self, filename, data):

0 commit comments

Comments
 (0)