diff --git a/__pycache__/data_filter.cpython-312.pyc b/__pycache__/data_filter.cpython-312.pyc index a4b99e9..5101f40 100644 Binary files a/__pycache__/data_filter.cpython-312.pyc and b/__pycache__/data_filter.cpython-312.pyc differ diff --git a/__pycache__/ticket_manager.cpython-312.pyc b/__pycache__/ticket_manager.cpython-312.pyc index 9ada2db..1ecacbd 100644 Binary files a/__pycache__/ticket_manager.cpython-312.pyc and b/__pycache__/ticket_manager.cpython-312.pyc differ diff --git a/data_filter.py b/data_filter.py index 045ca72..6de835d 100644 --- a/data_filter.py +++ b/data_filter.py @@ -11,29 +11,28 @@ def clean_html(content): def filter_ticket_data(ticket_data): """Filtre les données d'un ticket pour ne garder que les informations essentielles.""" - # Créer un nouveau dictionnaire pour le ticket filtré + + # Vérifier que ticket_data est bien une liste et extraire le premier élément + if isinstance(ticket_data, list) and len(ticket_data) > 0: + ticket_data = ticket_data[0] + else: + return {"Erreur": "Format de ticket invalide"} + filtered_ticket = { - "ID du Ticket": ticket_data["id", "ID non disponible"], - "Nom": ticket_data["Nom"], - "Code": ticket_data.get("Code", "N/A"), - "Date Limite": ticket_data["Date Limite"], - "Champs Simples": ticket_data["Champs Simples"], # Conserver tous les champs simples - "Champs Relationnels": ticket_data["Champs Relationnels"], # Conserver tous les champs relationnels - "Discussions": [] # Initialiser la liste des discussions + "ID du Ticket": ticket_data.get("id", "ID non disponible"), + "Nom": ticket_data.get("name", "Nom inconnu"), + "Code": ticket_data.get("code", "N/A"), + "Date Limite": ticket_data.get("date_deadline", "Non définie"), + "Projet": { + "ID": ticket_data.get("project_id", [None, "Projet inconnu"])[0], + "Nom": ticket_data.get("project_id", [None, "Projet inconnu"])[1] + }, + "Étape": { + "ID": ticket_data.get("stage_id", [None, "Étape inconnue"])[0], + "Nom": ticket_data.get("stage_id", [None, "Étape inconnue"])[1] + }, + "Description": clean_html(ticket_data.get("description", "")), + "Discussions": ticket_data.get("message_ids", []) } - # Nettoyer le champ description dans Champs Simples - if "description" in filtered_ticket["Champs Simples"]: - filtered_ticket["Champs Simples"]["description"] = clean_html(filtered_ticket["Champs Simples"]["description"]) - - # Garder uniquement les discussions nécessaires - for msg in ticket_data["Discussions"]: - filtered_ticket["Discussions"].append({ - "ID Message": msg["ID Message"], - "Sujet": msg["Sujet"], - "Contenu": clean_html(msg["Contenu"]), # Nettoyage du contenu HTML - "Auteur": msg["Auteur"], - "Date": msg["Date"] - }) - - return filtered_ticket \ No newline at end of file + return filtered_ticket diff --git a/exported_tickets/ticket_10908_raw.json b/exported_tickets/ticket_10908_raw.json new file mode 100644 index 0000000..d070535 --- /dev/null +++ b/exported_tickets/ticket_10908_raw.json @@ -0,0 +1,31 @@ +[ + { + "id": 10908, + "name": "TR: MAJ BRGlab", + "code": "T10929", + "stage_id": [ + 5, + "En attente de résolution" + ], + "project_id": [ + 3, + "Demandes" + ], + "date_deadline": false, + "description": "