Modification du formulaire des tickets pour le réinitaliser après la
création
This commit is contained in:
parent
fc08a00a6c
commit
92bfd442c2
@ -110,10 +110,6 @@ def creer_ticket_gitea(titre, corps, labels):
|
||||
|
||||
reponse = gitea_request("post", url, headers={"Content-Type": "application/json"}, data=json.dumps(data))
|
||||
if not reponse:
|
||||
return
|
||||
|
||||
issue_url = reponse.json().get("html_url", "")
|
||||
if issue_url:
|
||||
st.success(f"{str(_('pages.fiches.tickets.created_success'))} [Voir le ticket]({issue_url})")
|
||||
return False
|
||||
else:
|
||||
st.success(str(_('pages.fiches.tickets.created')))
|
||||
return True
|
||||
|
||||
@ -74,6 +74,8 @@ def afficher_controles_formulaire():
|
||||
col1, col2 = st.columns(2)
|
||||
if col1.button(str(_("pages.fiches.tickets.preview"))):
|
||||
st.session_state.previsualiser = True
|
||||
# S'assurer que l'expander reste ouvert en mode prévisualisation
|
||||
st.session_state.expander_state = True
|
||||
if col2.button(str(_("pages.fiches.tickets.cancel"))):
|
||||
st.session_state.previsualiser = False
|
||||
st.rerun()
|
||||
@ -81,6 +83,23 @@ def afficher_controles_formulaire():
|
||||
|
||||
def gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible):
|
||||
"""Gère la prévisualisation et la soumission du ticket."""
|
||||
# Si nous avons tenté de créer un ticket (succès ou erreur)
|
||||
if st.session_state.get("ticket_cree", False) or st.session_state.get("ticket_erreur", False):
|
||||
if st.session_state.get("ticket_cree", False):
|
||||
st.success(str(_("pages.fiches.tickets.created_success")))
|
||||
else:
|
||||
st.error(str(_("pages.fiches.tickets.creation_error")))
|
||||
|
||||
if st.button(str(_("pages.fiches.tickets.continue"))):
|
||||
# Réinitialiser le formulaire et cacher l'expander
|
||||
st.session_state.ticket_cree = False
|
||||
st.session_state.ticket_erreur = False
|
||||
st.session_state.previsualiser = False
|
||||
st.session_state.expander_state = False
|
||||
st.rerun()
|
||||
return
|
||||
|
||||
# Si nous ne sommes pas en mode prévisualisation, ne rien afficher
|
||||
if not st.session_state.get("previsualiser", False):
|
||||
return
|
||||
|
||||
@ -101,15 +120,31 @@ def gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible):
|
||||
labels_ids.append(labels_existants["Backlog"])
|
||||
|
||||
corps = construire_corps_ticket_markdown(reponses)
|
||||
creer_ticket_gitea(titre_ticket, corps, labels_ids)
|
||||
resultat = creer_ticket_gitea(titre_ticket, corps, labels_ids)
|
||||
|
||||
# Marquer le résultat et ouvrir l'expander pour afficher le résultat
|
||||
st.session_state.ticket_cree = resultat
|
||||
st.session_state.ticket_erreur = not resultat
|
||||
st.session_state.previsualiser = False
|
||||
st.success(str(_("pages.fiches.tickets.created")))
|
||||
st.session_state.expander_state = True
|
||||
st.rerun()
|
||||
|
||||
|
||||
def formulaire_creation_ticket_dynamique(fiche_selectionnee):
|
||||
"""Fonction principale pour le formulaire de création de ticket."""
|
||||
with st.expander(str(_("pages.fiches.tickets.create_new")), expanded=False):
|
||||
# Initialiser l'état de l'expander si ce n'est pas déjà fait
|
||||
if "expander_state" not in st.session_state:
|
||||
st.session_state.expander_state = False
|
||||
|
||||
with st.expander(str(_("pages.fiches.tickets.create_new")), expanded=st.session_state.expander_state):
|
||||
# Initialiser les états si ce n'est pas déjà fait
|
||||
if "ticket_cree" not in st.session_state:
|
||||
st.session_state.ticket_cree = False
|
||||
if "ticket_erreur" not in st.session_state:
|
||||
st.session_state.ticket_erreur = False
|
||||
if "previsualiser" not in st.session_state:
|
||||
st.session_state.previsualiser = False
|
||||
|
||||
# Chargement et vérification du modèle
|
||||
contenu_modele = charger_modele_ticket()
|
||||
if not contenu_modele:
|
||||
@ -119,11 +154,21 @@ def formulaire_creation_ticket_dynamique(fiche_selectionnee):
|
||||
# Traitement du modèle et génération du formulaire
|
||||
sections = parser_modele_ticket(contenu_modele)
|
||||
labels, selected_ops, cible = generer_labels(fiche_selectionnee)
|
||||
reponses = creer_champs_formulaire(sections, fiche_selectionnee)
|
||||
|
||||
# Gestion des contrôles et de la prévisualisation
|
||||
afficher_controles_formulaire()
|
||||
gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible)
|
||||
|
||||
# Créer le formulaire et gérer ses états
|
||||
if st.session_state.ticket_cree or st.session_state.ticket_erreur:
|
||||
# Si le ticket a été créé ou a échoué, afficher le message approprié et le bouton continuer
|
||||
gerer_previsualisation_et_soumission({}, labels, selected_ops, cible)
|
||||
else:
|
||||
# Sinon afficher le formulaire normal
|
||||
reponses = creer_champs_formulaire(sections, fiche_selectionnee)
|
||||
|
||||
# Afficher les contrôles uniquement si nous ne sommes pas en mode prévisualisation
|
||||
if not st.session_state.previsualiser:
|
||||
afficher_controles_formulaire()
|
||||
|
||||
# Gérer la prévisualisation et soumission
|
||||
gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible)
|
||||
|
||||
|
||||
def charger_modele_ticket():
|
||||
|
||||
@ -6,7 +6,6 @@ import re
|
||||
from collections import defaultdict
|
||||
from dateutil import parser
|
||||
from utils.translations import _
|
||||
from .core import rechercher_tickets_gitea
|
||||
|
||||
|
||||
def extraire_statut_par_label(ticket):
|
||||
|
||||
@ -227,7 +227,11 @@
|
||||
"comment_error": "Error retrieving comments:",
|
||||
"opened_by": "Opened by",
|
||||
"on_date": "on",
|
||||
"updated": "UPDATED"
|
||||
"updated": "UPDATED",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket created and placed in moderation",
|
||||
"created_error": "Ticket creation failed. Please try later",
|
||||
"see_ticket": "See ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -227,7 +227,11 @@
|
||||
"comment_error": "Erreur lors de la récupération des commentaires :",
|
||||
"opened_by": "Ouvert par",
|
||||
"on_date": "le",
|
||||
"updated": "MAJ"
|
||||
"updated": "MAJ",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket créé et placé en modération",
|
||||
"created_error": "Échec de la création du ticket. Veuillez réessayer plus tard",
|
||||
"see_ticket": "Voir le ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -181,15 +181,19 @@ elif st.session_state.onglet == fiches_tab:
|
||||
else:
|
||||
# Charger le graphe une seule fois
|
||||
# Le graphe n'est pas nécessaire pour Instructions ou Fiches
|
||||
G_temp, G_temp_ivc, dot_file_path = charger_graphe()
|
||||
dot_file_path = charger_graphe()
|
||||
|
||||
if dot_file_path and st.session_state.onglet == analyse_tab:
|
||||
G_temp = st.session_state["G_temp"]
|
||||
interface_analyse(G_temp)
|
||||
|
||||
elif dot_file_path and st.session_state.onglet == visualisations_tab:
|
||||
G_temp = st.session_state["G_temp"]
|
||||
G_temp_ivc = st.session_state["G_temp_ivc"]
|
||||
interface_visualisations(G_temp, G_temp_ivc)
|
||||
|
||||
elif dot_file_path and st.session_state.onglet == personnalisation_tab:
|
||||
G_temp = st.session_state["G_temp"]
|
||||
G_temp = interface_personnalisation(G_temp)
|
||||
|
||||
fermer_page()
|
||||
|
||||
@ -189,9 +189,7 @@ def charger_graphe():
|
||||
dot_file_path = True
|
||||
|
||||
if dot_file_path:
|
||||
G_temp = st.session_state["G_temp"]
|
||||
G_temp_ivc = st.session_state["G_temp_ivc"]
|
||||
return dot_file_path
|
||||
else:
|
||||
st.error("Impossible de charger le graphe pour cet onglet.")
|
||||
|
||||
return G_temp, G_temp_ivc, dot_file_path
|
||||
return dot_file_path
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user