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))
|
reponse = gitea_request("post", url, headers={"Content-Type": "application/json"}, data=json.dumps(data))
|
||||||
if not reponse:
|
if not reponse:
|
||||||
return
|
return False
|
||||||
|
|
||||||
issue_url = reponse.json().get("html_url", "")
|
|
||||||
if issue_url:
|
|
||||||
st.success(f"{str(_('pages.fiches.tickets.created_success'))} [Voir le ticket]({issue_url})")
|
|
||||||
else:
|
else:
|
||||||
st.success(str(_('pages.fiches.tickets.created')))
|
return True
|
||||||
|
|||||||
@ -74,6 +74,8 @@ def afficher_controles_formulaire():
|
|||||||
col1, col2 = st.columns(2)
|
col1, col2 = st.columns(2)
|
||||||
if col1.button(str(_("pages.fiches.tickets.preview"))):
|
if col1.button(str(_("pages.fiches.tickets.preview"))):
|
||||||
st.session_state.previsualiser = True
|
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"))):
|
if col2.button(str(_("pages.fiches.tickets.cancel"))):
|
||||||
st.session_state.previsualiser = False
|
st.session_state.previsualiser = False
|
||||||
st.rerun()
|
st.rerun()
|
||||||
@ -81,6 +83,23 @@ def afficher_controles_formulaire():
|
|||||||
|
|
||||||
def gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible):
|
def gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible):
|
||||||
"""Gère la prévisualisation et la soumission du ticket."""
|
"""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):
|
if not st.session_state.get("previsualiser", False):
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -101,15 +120,31 @@ def gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible):
|
|||||||
labels_ids.append(labels_existants["Backlog"])
|
labels_ids.append(labels_existants["Backlog"])
|
||||||
|
|
||||||
corps = construire_corps_ticket_markdown(reponses)
|
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.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):
|
def formulaire_creation_ticket_dynamique(fiche_selectionnee):
|
||||||
"""Fonction principale pour le formulaire de création de ticket."""
|
"""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
|
# Chargement et vérification du modèle
|
||||||
contenu_modele = charger_modele_ticket()
|
contenu_modele = charger_modele_ticket()
|
||||||
if not contenu_modele:
|
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
|
# Traitement du modèle et génération du formulaire
|
||||||
sections = parser_modele_ticket(contenu_modele)
|
sections = parser_modele_ticket(contenu_modele)
|
||||||
labels, selected_ops, cible = generer_labels(fiche_selectionnee)
|
labels, selected_ops, cible = generer_labels(fiche_selectionnee)
|
||||||
reponses = creer_champs_formulaire(sections, fiche_selectionnee)
|
|
||||||
|
|
||||||
# Gestion des contrôles et de la prévisualisation
|
# Créer le formulaire et gérer ses états
|
||||||
afficher_controles_formulaire()
|
if st.session_state.ticket_cree or st.session_state.ticket_erreur:
|
||||||
gerer_previsualisation_et_soumission(reponses, labels, selected_ops, cible)
|
# 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():
|
def charger_modele_ticket():
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import re
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from dateutil import parser
|
from dateutil import parser
|
||||||
from utils.translations import _
|
from utils.translations import _
|
||||||
from .core import rechercher_tickets_gitea
|
|
||||||
|
|
||||||
|
|
||||||
def extraire_statut_par_label(ticket):
|
def extraire_statut_par_label(ticket):
|
||||||
|
|||||||
@ -227,7 +227,11 @@
|
|||||||
"comment_error": "Error retrieving comments:",
|
"comment_error": "Error retrieving comments:",
|
||||||
"opened_by": "Opened by",
|
"opened_by": "Opened by",
|
||||||
"on_date": "on",
|
"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 :",
|
"comment_error": "Erreur lors de la récupération des commentaires :",
|
||||||
"opened_by": "Ouvert par",
|
"opened_by": "Ouvert par",
|
||||||
"on_date": "le",
|
"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:
|
else:
|
||||||
# Charger le graphe une seule fois
|
# Charger le graphe une seule fois
|
||||||
# Le graphe n'est pas nécessaire pour Instructions ou Fiches
|
# 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:
|
if dot_file_path and st.session_state.onglet == analyse_tab:
|
||||||
|
G_temp = st.session_state["G_temp"]
|
||||||
interface_analyse(G_temp)
|
interface_analyse(G_temp)
|
||||||
|
|
||||||
elif dot_file_path and st.session_state.onglet == visualisations_tab:
|
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)
|
interface_visualisations(G_temp, G_temp_ivc)
|
||||||
|
|
||||||
elif dot_file_path and st.session_state.onglet == personnalisation_tab:
|
elif dot_file_path and st.session_state.onglet == personnalisation_tab:
|
||||||
|
G_temp = st.session_state["G_temp"]
|
||||||
G_temp = interface_personnalisation(G_temp)
|
G_temp = interface_personnalisation(G_temp)
|
||||||
|
|
||||||
fermer_page()
|
fermer_page()
|
||||||
|
|||||||
@ -189,9 +189,7 @@ def charger_graphe():
|
|||||||
dot_file_path = True
|
dot_file_path = True
|
||||||
|
|
||||||
if dot_file_path:
|
if dot_file_path:
|
||||||
G_temp = st.session_state["G_temp"]
|
return dot_file_path
|
||||||
G_temp_ivc = st.session_state["G_temp_ivc"]
|
|
||||||
else:
|
else:
|
||||||
st.error("Impossible de charger le graphe pour cet onglet.")
|
st.error("Impossible de charger le graphe pour cet onglet.")
|
||||||
|
return dot_file_path
|
||||||
return G_temp, G_temp_ivc, dot_file_path
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user