pasquale991 commited on
Commit
5dfcb54
·
verified ·
1 Parent(s): 57c8431

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. 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 per il pulsante CLEAN ---
9
- # NON inizializzare uploaded_files_key per st.file_uploader in questo modo!
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
- # Collega il file_uploader al session_state per permettere il reset,
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="uploaded_files_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
- # --- Pulsante CLEAN ---
236
- st.markdown("---")
237
  def clear_inputs():
238
- st.session_state.uploaded_files_key = [] # Questo rimane corretto per resettare il file_uploader
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.")