Jon Solow commited on
Commit
eaae921
·
1 Parent(s): 323e235

Fix logic for current selection when some are locked

Browse files
Files changed (1) hide show
  1. src/pages/10_Set_Your_Lineup.py +14 -11
src/pages/10_Set_Your_Lineup.py CHANGED
@@ -139,28 +139,31 @@ def position_cell(
139
  pos_label = f"{week}-{pos_str}-{pos_idx}"
140
  selected_id = existing_selection_map.get(pos_label)
141
  options_list = options_map[pos_str][int(week)]
 
142
  disabled = False
143
- if isinstance(selected_id, str):
144
- try:
145
- selected_option_idx, selected_player = next(
146
- (i, v) for i, v in enumerate(options_list) if str(selected_id) == str(v.gsis_id)
147
- )
148
- except StopIteration:
149
- selected_player = PlayerOption.empty_player()
150
- selected_option_idx = 0
151
- else:
152
  selected_player = PlayerOption.empty_player()
153
- selected_option_idx = 0
154
  if int(week) > CURRENT_PLAYOFF_WEEK:
 
155
  options = []
156
  selected_option_idx = 0
157
  disabled = True
158
  elif int(week) < CURRENT_PLAYOFF_WEEK or selected_player.is_locked():
 
159
  options = [selected_player]
160
  selected_option_idx = 0
161
  disabled = True
162
  else:
163
- options = [x for x in options_list if not x.is_locked()]
 
 
 
 
 
164
 
165
  selected_player_from_box = st.selectbox(
166
  pos_str,
 
139
  pos_label = f"{week}-{pos_str}-{pos_idx}"
140
  selected_id = existing_selection_map.get(pos_label)
141
  options_list = options_map[pos_str][int(week)]
142
+ non_locked_options = [x for x in options_list if not x.is_locked()]
143
  disabled = False
144
+ # get selected player by id from options
145
+ try:
146
+ selected_player = next(v for v in options_list if str(selected_id) == str(v.gsis_id))
147
+ except Exception:
 
 
 
 
 
148
  selected_player = PlayerOption.empty_player()
149
+
150
  if int(week) > CURRENT_PLAYOFF_WEEK:
151
+ # future week, no options
152
  options = []
153
  selected_option_idx = 0
154
  disabled = True
155
  elif int(week) < CURRENT_PLAYOFF_WEEK or selected_player.is_locked():
156
+ # past week, can't change
157
  options = [selected_player]
158
  selected_option_idx = 0
159
  disabled = True
160
  else:
161
+ options = non_locked_options
162
+ # set to index of current select. This should exist, but try-except for safety
163
+ try:
164
+ selected_option_idx = non_locked_options.index(selected_player)
165
+ except ValueError:
166
+ selected_option_idx = 0
167
 
168
  selected_player_from_box = st.selectbox(
169
  pos_str,