import odoorpc from config import ODOO_HOST, ODOO_DB, ODOO_USER, ODOO_PASSWORD class OdooConnection: """Gère la connexion à l'instance Odoo""" def __init__(self): self.odoo = None self.connected = False def connect(self): """Établit la connexion à Odoo""" try: self.odoo = odoorpc.ODOO(ODOO_HOST, port=443, protocol='jsonrpc+ssl') print(f"Connexion réussie à {ODOO_HOST}") print("Bases de données disponibles :", self.odoo.db.list()) self.odoo.login(ODOO_DB, ODOO_USER, ODOO_PASSWORD) print(f"Authentifié en tant que {ODOO_USER}") self.connected = True return True except odoorpc.error.RPCError as e: print(f"Erreur RPC Odoo : {e}") return False except Exception as e: print(f"Erreur inattendue : {e}") return False def get_odoo_instance(self): """Retourne l'instance Odoo connectée""" if not self.connected: self.connect() return self.odoo def clean_ticket_data(ticket_data): """Version simplifiée de la fonction de nettoyage.""" return ticket_data # À remplacer par votre fonction de nettoyage existante def display_ticket_fields(ticket): """Affiche les champs d'un ticket et leurs valeurs.""" print("\n== DÉTAILS DU TICKET ==") print(f"ID: {ticket['ID du Ticket']}") print(f"Nom: {ticket['Nom']}") print(f"Date Limite: {ticket['Date Limite']}") print("\n== CHAMPS SIMPLES ==") for field_name, value in ticket['Champs Simples'].items(): print(f"{field_name}: {value}") print("\n== CHAMPS RELATIONNELS ==") for field_name, value in ticket['Champs Relationnels'].items(): print(f"{field_name}: {value}") print("\n== DISCUSSIONS ==") if ticket['Discussions']: for i, msg in enumerate(ticket['Discussions'], 1): print(f"Message {i}:") print(f" Auteur: {msg['Auteur']}") print(f" Date: {msg['Date']}") print(f" Sujet: {msg['Sujet']}") print(f" Contenu: {msg['Contenu'][:100]}..." if len(msg['Contenu']) > 100 else f" Contenu: {msg['Contenu']}") print() else: print("Aucune discussion trouvée.")