odoo_toolkit/data_filter.py
2025-03-18 15:55:09 +01:00

39 lines
1.4 KiB
Python

import re
import html
from bs4 import BeautifulSoup
def clean_html(content):
"""Nettoie le contenu HTML en supprimant les balises."""
if not content:
return ""
soup = BeautifulSoup(content, 'html.parser')
return soup.get_text(separator='\n', strip=True)
def filter_ticket_data(ticket_data):
"""Filtre les données d'un ticket pour ne garder que les informations essentielles."""
# 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.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", [])
}
return filtered_ticket