56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import streamlit as st
|
|
|
|
from functions import send_segnalazione
|
|
|
|
st.set_page_config(page_title="Segnala un problema", layout="centered")
|
|
st.title("Segnala un problema")
|
|
st.caption("Usa questo form per segnalare un errore, un dato mancante o qualsiasi problema riscontrato.")
|
|
|
|
with st.form("ticket_form", clear_on_submit=True):
|
|
page = st.selectbox(
|
|
"Pagina *",
|
|
options=["Cerca", "Ingrediente", "Nuovo PIF", "Ordini PIF", "Esposizione", "Impostazioni", "ECHA", "Altro"],
|
|
)
|
|
|
|
cas = st.text_input(
|
|
"CAS (opzionale)",
|
|
value=st.session_state.get("selected_cas") or "",
|
|
placeholder="es. 56-81-5",
|
|
help="Inserire il CAS coinvolto nel problema, se applicabile.",
|
|
)
|
|
|
|
description = st.text_area(
|
|
"Descrizione *",
|
|
placeholder="Descrivi il problema in modo chiaro e dettagliato.",
|
|
height=120,
|
|
)
|
|
|
|
error = st.text_area(
|
|
"Messaggio di errore (opzionale)",
|
|
placeholder="Incolla qui il messaggio di errore visualizzato, se presente.",
|
|
height=80,
|
|
)
|
|
|
|
priority = st.radio(
|
|
"Priorità *",
|
|
options=["bassa", "media", "alta"],
|
|
index=1,
|
|
horizontal=True,
|
|
captions=["Problema minore", "Impatta l'utilizzo", "Blocca il lavoro"],
|
|
)
|
|
|
|
submitted = st.form_submit_button("Invia segnalazione", type="primary", use_container_width=True)
|
|
|
|
if submitted:
|
|
if not description.strip():
|
|
st.error("La descrizione è obbligatoria.")
|
|
else:
|
|
ok = send_segnalazione(
|
|
page=page,
|
|
description=description.strip(),
|
|
priority=priority,
|
|
cas=cas.strip() or None,
|
|
error=error.strip() or None,
|
|
)
|
|
if ok:
|
|
st.success("Segnalazione inviata. Grazie per il feedback!")
|