Jon Solow
commited on
Commit
·
eaae921
1
Parent(s):
323e235
Fix logic for current selection when some are locked
Browse files- 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 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
)
|
148 |
-
except StopIteration:
|
149 |
-
selected_player = PlayerOption.empty_player()
|
150 |
-
selected_option_idx = 0
|
151 |
-
else:
|
152 |
selected_player = PlayerOption.empty_player()
|
153 |
-
|
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 =
|
|
|
|
|
|
|
|
|
|
|
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,
|