mirror of
https://github.com/Ladebeze66/odoo_toolkit.git
synced 2025-12-15 19:26:55 +01:00
J5-6
This commit is contained in:
parent
2538c63b9d
commit
563e388240
Binary file not shown.
3
exported_tickets/ticket_T10929_raw.json
Normal file
3
exported_tickets/ticket_T10929_raw.json
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
10908
|
||||
]
|
||||
@ -69,20 +69,22 @@ class TicketManager:
|
||||
print(f"Données brutes du ticket sauvegardées dans : {file_path}")
|
||||
|
||||
def get_ticket_by_id(self, ticket_id):
|
||||
""" Récupère les détails d'un ticket par son ID et applique le filtre """
|
||||
fields_to_read = self.get_model_fields(self.model_name) #Récupère tous les champs disponibles pour le modèle
|
||||
excluded_fields = set() # Liste des champs à exlure
|
||||
|
||||
"""Récupère les détails d'un ticket par son ID et exclut dynamiquement les champs invalides"""
|
||||
fields_to_read = self.get_model_fields(self.model_name) # Récupère tous les champs disponibles
|
||||
excluded_fields = set() # Liste des champs à exclure
|
||||
|
||||
while True:
|
||||
try:
|
||||
#Récupérer les données du ticket avec les champs filtrés
|
||||
valid_fields = [field for field in fields_to_read if field not in excluded_fields]
|
||||
ticket_data = self._safe_execute(self.model_name, 'read', [ticket_id], valid_fields)
|
||||
|
||||
# Mise à jour de fields_to_read en supprimant les champs exclus
|
||||
fields_to_read = [field for field in fields_to_read if field not in excluded_fields]
|
||||
|
||||
# Récupérer les données du ticket avec les champs filtrés
|
||||
ticket_data = self._safe_execute(self.model_name, 'read', [ticket_id], fields_to_read)
|
||||
|
||||
if not ticket_data:
|
||||
print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}")
|
||||
return None
|
||||
|
||||
|
||||
# Sauvegarde des données brutes pour analyse
|
||||
self.save_raw_ticket_data(ticket_data, f"ticket_{ticket_id}_raw.json")
|
||||
return ticket_data[0]
|
||||
@ -90,15 +92,16 @@ class TicketManager:
|
||||
except odoorpc.error.RPCError as e:
|
||||
error_message = str(e)
|
||||
print_error(f"Erreur RPC détectée : {error_message}")
|
||||
|
||||
#identifier le champ problématique
|
||||
|
||||
# Identifier le champ problématique
|
||||
invalid_field = self.extract_invalid_field(error_message)
|
||||
if invalid_field:
|
||||
print(f"Exclusion du champ invalide : {invalid_field}")
|
||||
excluded_fields.add(invalid_field)
|
||||
else:
|
||||
print_error(f"Impossible d'identifier le champ problématique. Arrêt de la récupération des données.")
|
||||
return None
|
||||
excluded_fields.add(invalid_field)
|
||||
else:
|
||||
print_error("Impossible d'identifier le champ problématique.")
|
||||
return None
|
||||
|
||||
|
||||
def get_ticket_by_code(self, ticket_code):
|
||||
"""Récupérer un ticket via son code"""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user