fix multiple cas

This commit is contained in:
adish-rmr 2026-01-22 22:42:25 +01:00
parent 421c94b1e3
commit 4aa49e171d

27
app.py
View file

@ -1,3 +1,5 @@
import re
import streamlit as st import streamlit as st
from functions_ui import search_cas_inci from functions_ui import search_cas_inci
@ -68,12 +70,25 @@ def home():
# Salva solo il CAS selezionato nel session_state (estrae la parte prima del " - ") # Salva solo il CAS selezionato nel session_state (estrae la parte prima del " - ")
if selected_display and selected_display != "": if selected_display and selected_display != "":
selected_cas = selected_display.split(" - ")[0] cas_pattern = r'\b\d{2,7}-\d{2}-\d\b'
if ";" in selected_cas: found_cas = re.findall(cas_pattern, selected_display)
selected_cas = st.selectbox(options=selected_cas.split(";"), label="CAS multipli, selezionarne uno:") unique_cas = list(dict.fromkeys(found_cas))
elif "/" in selected_cas:
selected_cas = st.selectbox(options=selected_cas.split("/"), label="CAS multipli, selezionarne uno:") if not unique_cas:
st.session_state.selected_cas = selected_cas.strip() st.warning("Nessun pattern CAS valido trovato nella stringa.")
selected_cas = None
elif len(unique_cas) == 1:
selected_cas = unique_cas[0]
st.info(f"CAS rilevato: {selected_cas}")
else:
selected_cas = st.selectbox(
label="Sono stati rilevati più CAS. Selezionane uno:",
options=unique_cas
)
if selected_cas:
st.session_state.selected_cas = selected_cas
st.success(f"CAS selezionato: {selected_cas}") st.success(f"CAS selezionato: {selected_cas}")
else: else:
# Nessun risultato trovato: permetti di usare l'input manuale # Nessun risultato trovato: permetti di usare l'input manuale