diff --git a/frontend/components/config_loader.py b/frontend/components/config_loader.py index 812c983..8cb1542 100644 --- a/frontend/components/config_loader.py +++ b/frontend/components/config_loader.py @@ -11,18 +11,18 @@ def get_default_config_loader(controller_name: str): all_configs = backend_api_client.get_all_controllers_config() existing_configs = [config["id"].split("-")[0] for config in all_configs] default_dict = {"id": generate_random_name(existing_configs)} + default_config = st.session_state.get("default_config") + config_controller_name = st.session_state.get("controller_name", "nan") + if default_config is None or controller_name != config_controller_name: + st.session_state["default_config"] = default_dict with st.expander("Configurations", expanded=True): c1, c2 = st.columns(2) with c1: use_default_config = st.checkbox("Use default config", value=True) - if use_default_config: - st.session_state["default_config"] = default_dict - else: - with c2: + with c2: + if not use_default_config: configs = [config for config in all_configs if config["controller_name"] == controller_name] default_config = st.selectbox("Select a config", [config["id"] for config in configs]) st.session_state["default_config"] = next((config for config in all_configs if config["id"] == default_config), None) - if st.session_state["default_config"] is None: - st.session_state["default_config"] = default_dict - else: - st.session_state["default_config"]["id"] = st.session_state["default_config"]["id"].split("_")[0] + st.session_state["default_config"]["id"] = st.session_state["default_config"]["id"].split("_")[0] + diff --git a/frontend/components/save_config.py b/frontend/components/save_config.py index 2afedfa..2c6fae6 100644 --- a/frontend/components/save_config.py +++ b/frontend/components/save_config.py @@ -4,12 +4,12 @@ from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT from backend.services.backend_api_client import BackendAPIClient -def render_save_config(config_base: str, config_data: dict): +def render_save_config(config_base_default: str, config_data: dict): st.write("### Upload Config to BackendAPI") backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT) all_configs = backend_api_client.get_all_controllers_config() config_bases = set(config_name["id"].split("_")[0] for config_name in all_configs) - config_base = config_base.split("_")[0] + config_base = config_base_default.split("_")[0] if config_base in config_bases: config_tag = max(float(config["id"].split("_")[-1]) for config in all_configs if config_base in config["id"]) version, tag = str(config_tag).split(".") @@ -27,4 +27,5 @@ def render_save_config(config_base: str, config_data: dict): config_data["id"] = f"{config_base}_{config_tag}" backend_api_client = BackendAPIClient.get_instance(host=BACKEND_API_HOST, port=BACKEND_API_PORT) backend_api_client.add_controller_config(config_data) + st.session_state["default_config"] = None st.success("Config uploaded successfully!")