duongthienz commited on
Commit
2097b36
·
verified ·
1 Parent(s): 9ffbef1

Fix token issue with rename

Browse files
Files changed (1) hide show
  1. ui.py +14 -1
ui.py CHANGED
@@ -103,6 +103,13 @@ def render_rename_sidebar(currFile, speakerNames, all_speaker_tokens):
103
  )
104
  enforceGlobalRenameExclusivity(idx)
105
 
 
 
 
 
 
 
 
106
  for idx, entry in enumerate(st.session_state.globalRenames):
107
  grkey = _global_rename_key(idx)
108
  if grkey not in st.session_state:
@@ -114,8 +121,14 @@ def render_rename_sidebar(currFile, speakerNames, all_speaker_tokens):
114
  on_click=removeGlobalRename, args=(idx,),
115
  help=f"Remove '{entry['name']}'",
116
  )
 
 
 
 
 
 
117
  st.sidebar.multiselect(
118
- f"Speakers for {entry['name']}", options=all_speaker_tokens,
119
  key=grkey, on_change=_on_grename_change, args=(idx,),
120
  label_visibility="collapsed",
121
  )
 
103
  )
104
  enforceGlobalRenameExclusivity(idx)
105
 
106
+ # Build a set of every token already claimed by some entry, for fast lookup
107
+ all_claimed = {
108
+ token
109
+ for e in st.session_state.globalRenames
110
+ for token in e["speakers"]
111
+ }
112
+
113
  for idx, entry in enumerate(st.session_state.globalRenames):
114
  grkey = _global_rename_key(idx)
115
  if grkey not in st.session_state:
 
121
  on_click=removeGlobalRename, args=(idx,),
122
  help=f"Remove '{entry['name']}'",
123
  )
124
+ # Options = tokens owned by this entry + tokens not claimed by anyone
125
+ this_entry_tokens = set(entry["speakers"])
126
+ available_tokens = [
127
+ t for t in all_speaker_tokens
128
+ if t not in all_claimed or t in this_entry_tokens
129
+ ]
130
  st.sidebar.multiselect(
131
+ f"Speakers for {entry['name']}", options=available_tokens,
132
  key=grkey, on_change=_on_grename_change, args=(idx,),
133
  label_visibility="collapsed",
134
  )