TheWolfOfChain commited on
Commit
cd501bd
·
verified ·
1 Parent(s): c5d24f8

Create TA2MAi

Browse files
Files changed (1) hide show
  1. TA2MAi +93 -0
TA2MAi ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ # Titolo dell'applicazione
4
+ st.title("Mini App di Automazione Flussi (Esempio)")
5
+
6
+ # --- Gestione dello stato del flusso ---
7
+ # Usiamo st.session_state per ricordare a che punto siamo nel flusso,
8
+ # anche quando l'utente interagisce con l'app.
9
+
10
+ if 'current_step' not in st.session_state:
11
+ st.session_state.current_step = 1 # Inizia dal passo 1
12
+ if 'user_choice' not in st.session_state:
13
+ st.session_state.user_choice = None # Scelta dell'utente
14
+ if 'user_input' not in st.session_state:
15
+ st.session_state.user_input = "" # Input dell'utente
16
+
17
+ # --- Definizione dei Passaggi del Flusso ---
18
+
19
+ # PASSO 1: Scelta del tipo di azione
20
+ if st.session_state.current_step == 1:
21
+ st.header("Passo 1: Scegli l'azione")
22
+ options = ["Seleziona...", "Elabora Testo", "Inserisci Dati"]
23
+ choice = st.selectbox("Che tipo di operazione vuoi simulare?", options)
24
+
25
+ if choice != "Seleziona...":
26
+ if st.button("Vai al Passo 2"):
27
+ st.session_state.user_choice = choice
28
+ st.session_state.current_step = 2
29
+ st.rerun() # Ricarica l'app per mostrare il passo successivo
30
+
31
+ # PASSO 2: Esecuzione dell'azione scelta
32
+ elif st.session_state.current_step == 2:
33
+ st.header(f"Passo 2: {st.session_state.user_choice}")
34
+
35
+ if st.session_state.user_choice == "Elabora Testo":
36
+ text = st.text_area("Inserisci il testo da elaborare:")
37
+ operation = st.radio("Scegli operazione:", ["Conta Parole", "Converti in Maiuscolo"])
38
+
39
+ if st.button("Esegui e Vai al Riepilogo"):
40
+ if operation == "Conta Parole":
41
+ result = f"Il testo contiene {len(text.split())} parole."
42
+ elif operation == "Converti in Maiuscolo":
43
+ result = text.upper()
44
+ else:
45
+ result = "Operazione non valida."
46
+
47
+ st.session_state.user_input = text # Salva l'input
48
+ st.session_state.result = result # Salva il risultato
49
+ st.session_state.current_step = 3
50
+ st.rerun()
51
+
52
+ elif st.session_state.user_choice == "Inserisci Dati":
53
+ name = st.text_input("Nome:")
54
+ email = st.text_input("Email:")
55
+
56
+ if st.button("Salva e Vai al Riepilogo"):
57
+ result = f"Dati inseriti: Nome={name}, Email={email}"
58
+ st.session_state.user_input = f"Nome: {name}\nEmail: {email}" # Salva l'input
59
+ st.session_state.result = result # Salva il risultato
60
+ st.session_state.current_step = 3
61
+ st.rerun()
62
+
63
+ # Pulsante per tornare indietro (opzionale)
64
+ if st.button("Torna al Passo 1"):
65
+ st.session_state.current_step = 1
66
+ st.session_state.user_choice = None
67
+ st.session_state.user_input = ""
68
+ st.session_state.result = ""
69
+ st.rerun()
70
+
71
+
72
+ # PASSO 3: Riepilogo/Fine
73
+ elif st.session_state.current_step == 3:
74
+ st.header("Passo 3: Riepilogo Flusso")
75
+ st.write(f"Azione scelta: {st.session_state.user_choice}")
76
+ st.subheader("Input fornito:")
77
+ st.text(st.session_state.user_input)
78
+ st.subheader("Risultato:")
79
+ st.success(st.session_state.result) # st.success mostra un box verde
80
+
81
+ if st.button("Ricomincia Flusso"):
82
+ # Resetta tutto per ricominciare
83
+ st.session_state.current_step = 1
84
+ st.session_state.user_choice = None
85
+ st.session_state.user_input = ""
86
+ st.session_state.result = ""
87
+ st.rerun()
88
+
89
+ # --- Footer (opzionale) ---
90
+ st.sidebar.info(f"Stato attuale: Passo {st.session_state.current_step}")
91
+ if st.session_state.user_choice:
92
+ st.sidebar.write(f"Azione: {st.session_state.user_choice}")
93
+