Skip to content

Commit 60d8761

Browse files
committed
add curriculum selector to the context
1 parent 5565d73 commit 60d8761

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

code/Home.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@
7979
'auto_training_history_x_axis': 'date',
8080
'auto_training_history_sort_by': 'subject_id',
8181
'auto_training_history_sort_order': 'descending',
82+
'auto_training_curriculum_name': 'Coupled Baiting',
83+
'auto_training_curriculum_version': '1.0',
84+
'auto_training_curriculum_schema_version': '0.3',
8285
}
8386

8487

@@ -640,12 +643,35 @@ def app():
640643
# Show curriculum manager dataframe
641644
st.markdown("#### Available auto training curriculums")
642645
cols = st.columns([1, 1])
646+
647+
# Get curriculum from previous selected or the URL
648+
if 'auto_training_curriculum_name' in st.session_state:
649+
selected_row = {'curriculum_name': st.session_state['auto_training_curriculum_name'],
650+
'curriculum_schema_version': st.session_state['auto_training_curriculum_schema_version'],
651+
'curriculum_version': st.session_state['auto_training_curriculum_version']}
652+
matched_curriculum = df_curriculums[(df_curriculums[list(selected_row)] == pd.Series(selected_row)).all(axis=1)]
653+
654+
if len(matched_curriculum):
655+
pre_selected_rows = matched_curriculum.index.to_list()
656+
else:
657+
selected_row = None # Clear selected row if not found
658+
pre_selected_rows = None
659+
643660
with cols[0]:
644-
aggrid_curriculum_outputs = aggrid_interactive_table_curriculum(df=df_curriculums)
661+
aggrid_curriculum_outputs = aggrid_interactive_table_curriculum(df=df_curriculums,
662+
pre_selected_rows=pre_selected_rows)
645663

664+
# Overriding the selected curriculum if the user selects a different one
646665
if aggrid_curriculum_outputs['selected_rows']:
647666
# Get selected curriculum
648667
selected_row = aggrid_curriculum_outputs['selected_rows'][0]
668+
669+
# Update session_state
670+
st.session_state['auto_training_curriculum_name'] = selected_row['curriculum_name']
671+
st.session_state['auto_training_curriculum_schema_version'] = selected_row['curriculum_schema_version']
672+
st.session_state['auto_training_curriculum_version'] = selected_row['curriculum_version']
673+
674+
if selected_row:
649675
selected_curriculum = st.session_state.curriculum_manager.get_curriculum(
650676
curriculum_name=selected_row['curriculum_name'],
651677
curriculum_schema_version=selected_row['curriculum_schema_version'],

code/util/streamlit.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ def aggrid_interactive_table_session(df: pd.DataFrame):
9696

9797
return selection
9898

99-
def aggrid_interactive_table_curriculum(df: pd.DataFrame):
99+
def aggrid_interactive_table_curriculum(df: pd.DataFrame,
100+
pre_selected_rows: list = None):
100101
"""Creates an st-aggrid interactive table based on a dataframe.
101102
102103
Args:
@@ -111,7 +112,8 @@ def aggrid_interactive_table_curriculum(df: pd.DataFrame):
111112

112113
options.configure_side_bar()
113114

114-
options.configure_selection(selection_mode="single")
115+
options.configure_selection(selection_mode="single",
116+
pre_selected_rows=pre_selected_rows)
115117

116118
selection = AgGrid(
117119
df,

0 commit comments

Comments
 (0)