# === Constantes et imports === import streamlit as st import requests import os from .utils.tickets.display import afficher_tickets_par_fiche from .utils.tickets.creation import formulaire_creation_ticket_dynamique from .utils.tickets.core import rechercher_tickets_gitea from config import GITEA_TOKEN, GITEA_URL, ORGANISATION, DEPOT_FICHES, ENV, FICHES_CRITICITE from utils.gitea import charger_arborescence_fiches from .utils.fiche_utils import load_seuils, doit_regenerer_fiche from .generer import generer_fiche def interface_fiches(): st.markdown("# Affichage des fiches") st.markdown("Sélectionner d'abord l'opération que vous souhaitez examiner et ensuite choisisez la fiche à lire.") st.markdown("---") if "fiches_arbo" not in st.session_state: st.session_state["fiches_arbo"] = charger_arborescence_fiches() arbo = st.session_state.get("fiches_arbo", {}) if not arbo: st.warning("Aucune fiche disponible pour le moment.") return dossiers = sorted(arbo.keys(), key=lambda x: x.lower()) dossier_choisi = st.selectbox("Choisissez un dossier", ["-- Sélectionner un dossier --"] + dossiers) if dossier_choisi and dossier_choisi != "-- Sélectionner un dossier --": fiches = arbo.get(dossier_choisi, []) noms_fiches = [f['nom'] for f in fiches] fiche_choisie = st.selectbox("Choisissez une fiche", ["-- Sélectionner une fiche --"] + noms_fiches) if fiche_choisie and fiche_choisie != "-- Sélectionner une fiche --": fiche_info = next((f for f in fiches if f["nom"] == fiche_choisie), None) if fiche_info: try: headers = {"Authorization": f"token {GITEA_TOKEN}"} reponse_fiche = requests.get(fiche_info["download_url"], headers=headers) reponse_fiche.raise_for_status() md_source = reponse_fiche.text if "seuils" not in st.session_state: SEUILS = load_seuils("assets/config.yaml") st.session_state["seuils"] = SEUILS else: SEUILS = st.session_state["seuils"] html_path = os.path.join("HTML", dossier_choisi, os.path.splitext(fiche_choisie)[0] + ".html") path_relative = f"Documents/{dossier_choisi}/{fiche_choisie}" commits_url = f"{GITEA_URL}/repos/{ORGANISATION}/{DEPOT_FICHES}/commits?path={path_relative}&sha={ENV}" regenerate = doit_regenerer_fiche( html_path=html_path, fiche_type=fiche_info.get("type", ""), fiche_choisie=fiche_choisie, commit_url=commits_url, fichiers_criticite=FICHES_CRITICITE ) if regenerate: html_path = generer_fiche(md_source, dossier_choisi, fiche_choisie, SEUILS) with open(html_path, "r", encoding="utf-8") as f: st.markdown(f.read(), unsafe_allow_html=True) st.markdown("