odoo_toolkit/data_filter.py
2025-03-17 19:39:32 +01:00

39 lines
1.6 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."""
# Créer un nouveau dictionnaire pour le ticket filtré
filtered_ticket = {
"ID du Ticket": ticket_data["ID du Ticket"],
"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
}
# 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