(feat) improve loaders and config savers

This commit is contained in:
cardosofede
2024-06-06 23:34:00 +02:00
parent 15f6ab0bfb
commit 62e0f292d2
2 changed files with 11 additions and 10 deletions

View File

@@ -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:
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]

View File

@@ -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!")