mirror of
https://github.com/overcuriousity/trace.git
synced 2025-12-20 13:02:21 +00:00
Merge pull request #5 from overcuriousity/claude/fix-note-details-access-01XmzZ6wE2NUAXba8tF6TrxD
Fix case_detail delete logic order bug
This commit is contained in:
33
trace/tui.py
33
trace/tui.py
@@ -2404,25 +2404,15 @@ class TUI:
|
|||||||
self.show_message(f"Case {case_to_del.case_number} deleted.")
|
self.show_message(f"Case {case_to_del.case_number} deleted.")
|
||||||
|
|
||||||
elif self.current_view == "case_detail" and self.active_case:
|
elif self.current_view == "case_detail" and self.active_case:
|
||||||
# Determine if we're deleting a note or evidence based on selected index
|
# Determine if we're deleting evidence or note based on selected index
|
||||||
case_notes = self.active_case.notes
|
case_notes = self.active_case.notes
|
||||||
filtered = self._get_filtered_list(self.active_case.evidence, "name", "description")
|
filtered = self._get_filtered_list(self.active_case.evidence, "name", "description")
|
||||||
|
|
||||||
# Check if selecting a note (indices 0 to len(notes)-1)
|
# Evidence items come first (indices 0 to len(filtered)-1)
|
||||||
if self.selected_index < len(case_notes):
|
# Case notes come second (indices len(filtered) to len(filtered)+len(case_notes)-1)
|
||||||
# Delete case note
|
if self.selected_index < len(filtered):
|
||||||
note_to_del = case_notes[self.selected_index]
|
# Delete evidence
|
||||||
preview = note_to_del.content[:50] + "..." if len(note_to_del.content) > 50 else note_to_del.content
|
ev_to_del = filtered[self.selected_index]
|
||||||
if self.dialog_confirm(f"Delete note: '{preview}'?"):
|
|
||||||
self.active_case.notes.remove(note_to_del)
|
|
||||||
self.storage.save_data()
|
|
||||||
self.selected_index = 0
|
|
||||||
self.scroll_offset = 0
|
|
||||||
self.show_message("Note deleted.")
|
|
||||||
elif filtered and self.selected_index - len(case_notes) < len(filtered):
|
|
||||||
# Delete evidence (adjust index by subtracting case notes count)
|
|
||||||
evidence_idx = self.selected_index - len(case_notes)
|
|
||||||
ev_to_del = filtered[evidence_idx]
|
|
||||||
if self.dialog_confirm(f"Delete Evidence {ev_to_del.name}?"):
|
if self.dialog_confirm(f"Delete Evidence {ev_to_del.name}?"):
|
||||||
self.storage.delete_evidence(self.active_case.case_id, ev_to_del.evidence_id)
|
self.storage.delete_evidence(self.active_case.case_id, ev_to_del.evidence_id)
|
||||||
# Check active state
|
# Check active state
|
||||||
@@ -2437,6 +2427,17 @@ class TUI:
|
|||||||
self.selected_index = 0
|
self.selected_index = 0
|
||||||
self.scroll_offset = 0
|
self.scroll_offset = 0
|
||||||
self.show_message(f"Evidence '{ev_to_del.name}' deleted.")
|
self.show_message(f"Evidence '{ev_to_del.name}' deleted.")
|
||||||
|
elif case_notes and self.selected_index - len(filtered) < len(case_notes):
|
||||||
|
# Delete case note (adjust index by subtracting evidence count)
|
||||||
|
note_idx = self.selected_index - len(filtered)
|
||||||
|
note_to_del = case_notes[note_idx]
|
||||||
|
preview = note_to_del.content[:50] + "..." if len(note_to_del.content) > 50 else note_to_del.content
|
||||||
|
if self.dialog_confirm(f"Delete note: '{preview}'?"):
|
||||||
|
self.active_case.notes.remove(note_to_del)
|
||||||
|
self.storage.save_data()
|
||||||
|
self.selected_index = 0
|
||||||
|
self.scroll_offset = 0
|
||||||
|
self.show_message("Note deleted.")
|
||||||
|
|
||||||
elif self.current_view == "evidence_detail" and self.active_evidence:
|
elif self.current_view == "evidence_detail" and self.active_evidence:
|
||||||
# Delete individual notes from evidence
|
# Delete individual notes from evidence
|
||||||
|
|||||||
Reference in New Issue
Block a user