From 977f5e43693c2d718c8097a15d4307c8492544fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrication=20du=20Num=C3=A9rique?= Date: Wed, 4 Jun 2025 10:09:41 +0200 Subject: [PATCH] =?UTF-8?q?Modification=20de=20la=20gestion=20dynamique=20?= =?UTF-8?q?des=20s=C3=A9lections=20dans=20pda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/plan_d_action/.gitignore | 1 + app/plan_d_action/utils/data/plan_d_action.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 app/plan_d_action/.gitignore diff --git a/app/plan_d_action/.gitignore b/app/plan_d_action/.gitignore new file mode 100644 index 0000000..1c18760 --- /dev/null +++ b/app/plan_d_action/.gitignore @@ -0,0 +1 @@ +jobs/ diff --git a/app/plan_d_action/utils/data/plan_d_action.py b/app/plan_d_action/utils/data/plan_d_action.py index e045de3..ca0dd9e 100644 --- a/app/plan_d_action/utils/data/plan_d_action.py +++ b/app/plan_d_action/utils/data/plan_d_action.py @@ -86,12 +86,24 @@ def tableau_de_bord(chains, produits, composants, mineraux, seuils): produits_disponibles = sorted({c["produit"] for c in chains}) sel_prod = st.selectbox("Produit", produits_disponibles, index=produits_disponibles.index(st.session_state.sel_prod) if st.session_state.sel_prod else 0) + if sel_prod != st.session_state.sel_prod: + st.session_state.sel_prod = sel_prod + st.session_state.sel_comp = None + st.session_state.sel_miner = None + st.rerun() composants_dispo = sorted({c["composant"] for c in chains if c["produit"] == sel_prod}) sel_comp = st.selectbox("Composant", composants_dispo, index=composants_dispo.index(st.session_state.sel_comp) if st.session_state.sel_comp else 0) + if sel_comp != st.session_state.sel_comp: + st.session_state.sel_comp = sel_comp + st.session_state.sel_miner = None + st.rerun() mineraux_dispo = sorted({c["minerai"] for c in chains if c["produit"] == sel_prod and c["composant"] == sel_comp}) sel_miner = st.selectbox("Minerai", mineraux_dispo, index=mineraux_dispo.index(st.session_state.sel_miner) if st.session_state.sel_miner else 0) + if sel_miner != st.session_state.sel_miner: + st.session_state.sel_miner = sel_miner + st.rerun() with col_right: top_chains = analyser_chaines(chains, produits, composants, mineraux, seuils, top_n=5) st.markdown("**Top chaînes critiques pour sélection rapide**", unsafe_allow_html=True)