Spaces:
Sleeping
Sleeping
Update src/streamlit_app.py
Browse files- src/streamlit_app.py +17 -13
src/streamlit_app.py
CHANGED
|
@@ -5,14 +5,14 @@ from datetime import datetime
|
|
| 5 |
import io
|
| 6 |
import os
|
| 7 |
|
| 8 |
-
# --- Inizializzazione Session State
|
| 9 |
-
#
|
| 10 |
-
# Streamlit lo gestisce automaticamente.
|
| 11 |
-
|
| 12 |
-
# Inizializza solo il campo di testo, che supporta questa sintassi
|
| 13 |
if 'site_code_input' not in st.session_state:
|
| 14 |
st.session_state.site_code_input = ""
|
| 15 |
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
# --- CSS personalizzato per sfondo giallo e testo blu ---
|
| 18 |
st.markdown(
|
|
@@ -45,7 +45,7 @@ st.markdown(
|
|
| 45 |
}
|
| 46 |
</style>
|
| 47 |
""",
|
| 48 |
-
unsafe_allow_html=True # QUESTA RIGA DEVE ESSERCI
|
| 49 |
)
|
| 50 |
|
| 51 |
|
|
@@ -123,13 +123,12 @@ st.header("1. Qual è il Site Code? Inseriscilo qui:")
|
|
| 123 |
user_site_code = st.text_input("Site Code", key="site_code_input")
|
| 124 |
|
| 125 |
st.header("2. Carica i tuoi file JSON")
|
| 126 |
-
#
|
| 127 |
-
# ma senza pre-inizializzare la sua chiave all'inizio dello script.
|
| 128 |
uploaded_files = st.file_uploader(
|
| 129 |
"Scegli uno o più file JSON per lo stesso siteCode di tipo 'Ordine_Acquisto'",
|
| 130 |
type=["json"],
|
| 131 |
accept_multiple_files=True,
|
| 132 |
-
key=
|
| 133 |
)
|
| 134 |
|
| 135 |
all_processed_data = []
|
|
@@ -184,6 +183,10 @@ if uploaded_files:
|
|
| 184 |
final_df = pd.concat(all_processed_data, ignore_index=True)
|
| 185 |
st.success(f"Elaborazione di {len(all_processed_data)} file JSON completata! Pronto per il download.")
|
| 186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
output = io.BytesIO()
|
| 188 |
writer = pd.ExcelWriter(output, engine='xlsxwriter')
|
| 189 |
|
|
@@ -232,12 +235,13 @@ else:
|
|
| 232 |
st.info("Carica i tuoi file JSON per iniziare. I file devono essere della stessa tipologia!")
|
| 233 |
|
| 234 |
|
| 235 |
-
# ---
|
| 236 |
-
st.markdown("---")
|
| 237 |
def clear_inputs():
|
| 238 |
-
st.session_state.
|
| 239 |
-
st.session_state.site_code_input = ""
|
|
|
|
| 240 |
|
|
|
|
| 241 |
st.button("Pulisci Input (RESET)", on_click=clear_inputs)
|
| 242 |
|
| 243 |
st.markdown("Sviluppato con Streamlit e Python.")
|
|
|
|
| 5 |
import io
|
| 6 |
import os
|
| 7 |
|
| 8 |
+
# --- Inizializzazione Session State ---
|
| 9 |
+
# Per il text_input 'site_code_input'
|
|
|
|
|
|
|
|
|
|
| 10 |
if 'site_code_input' not in st.session_state:
|
| 11 |
st.session_state.site_code_input = ""
|
| 12 |
|
| 13 |
+
# Per il file_uploader, useremo una chiave che cambia per forzare il reset
|
| 14 |
+
if 'file_uploader_key' not in st.session_state:
|
| 15 |
+
st.session_state.file_uploader_key = 0 # Inizializziamo con un numero intero
|
| 16 |
|
| 17 |
# --- CSS personalizzato per sfondo giallo e testo blu ---
|
| 18 |
st.markdown(
|
|
|
|
| 45 |
}
|
| 46 |
</style>
|
| 47 |
""",
|
| 48 |
+
unsafe_allow_html=True # QUESTA RIGA DEVE ESSERCI
|
| 49 |
)
|
| 50 |
|
| 51 |
|
|
|
|
| 123 |
user_site_code = st.text_input("Site Code", key="site_code_input")
|
| 124 |
|
| 125 |
st.header("2. Carica i tuoi file JSON")
|
| 126 |
+
# Passiamo la chiave dinamica al file_uploader
|
|
|
|
| 127 |
uploaded_files = st.file_uploader(
|
| 128 |
"Scegli uno o più file JSON per lo stesso siteCode di tipo 'Ordine_Acquisto'",
|
| 129 |
type=["json"],
|
| 130 |
accept_multiple_files=True,
|
| 131 |
+
key=st.session_state.file_uploader_key # Usa la chiave dinamica qui
|
| 132 |
)
|
| 133 |
|
| 134 |
all_processed_data = []
|
|
|
|
| 183 |
final_df = pd.concat(all_processed_data, ignore_index=True)
|
| 184 |
st.success(f"Elaborazione di {len(all_processed_data)} file JSON completata! Pronto per il download.")
|
| 185 |
|
| 186 |
+
# --- Gestione di cancelPosOda per avere "True" o "False" come stringhe ---
|
| 187 |
+
# Mappa i valori booleani Python in stringhe "True" o "False"
|
| 188 |
+
final_df['positions.stock.cancelPosOda'] = final_df['positions.stock.cancelPosOda'].apply(lambda x: str(x).capitalize())
|
| 189 |
+
|
| 190 |
output = io.BytesIO()
|
| 191 |
writer = pd.ExcelWriter(output, engine='xlsxwriter')
|
| 192 |
|
|
|
|
| 235 |
st.info("Carica i tuoi file JSON per iniziare. I file devono essere della stessa tipologia!")
|
| 236 |
|
| 237 |
|
| 238 |
+
# --- Funzione per il reset: incrementa la chiave del file_uploader ---
|
|
|
|
| 239 |
def clear_inputs():
|
| 240 |
+
st.session_state.file_uploader_key += 1 # Invalida la chiave del file_uploader, forzandone il reset
|
| 241 |
+
st.session_state.site_code_input = "" # Resetta il campo Site Code
|
| 242 |
+
st.rerun() # Forza un rerun per applicare i cambiamenti immediatamente
|
| 243 |
|
| 244 |
+
st.markdown("---")
|
| 245 |
st.button("Pulisci Input (RESET)", on_click=clear_inputs)
|
| 246 |
|
| 247 |
st.markdown("Sviluppato con Streamlit e Python.")
|