From 563e388240649d1c2b0624cc85791cdf5f87bc00 Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Tue, 18 Mar 2025 17:11:25 +0100 Subject: [PATCH] J5-6 --- __pycache__/ticket_manager.cpython-312.pyc | Bin 8919 -> 8793 bytes exported_tickets/ticket_T10929_raw.json | 3 ++ ticket_manager.py | 33 +++++++++++---------- 3 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 exported_tickets/ticket_T10929_raw.json diff --git a/__pycache__/ticket_manager.cpython-312.pyc b/__pycache__/ticket_manager.cpython-312.pyc index f10243a9bd4e28264b324f58832e10cfbf2b0da8..2b6e28cf48f5b240a4b3976b7286307a1b5112ba 100644 GIT binary patch delta 491 zcmccadeepXG%qg~0}x!Bbu<0WM&611j4YGq^H(r4)v`=JCn`R9H@~Pz3S$jpI%5sf zY8H@628LSJ8rI2C0_NhZDJ(UNvl&uY=Q6Kmg2*v40OeK)c&dlivXux!#26TA*j6(_ z*tP5>oG{T8_8Rud5`wC->~L9*8jd2q5^=Z+Ab)a{pz35>K~7ahhDe4K=32Howmc39 zUCvm}P{AC@P|nzMTa&Xi8mMjZ1wkXt)QaSs(h`M~%Dlwf%)-*t+|;}hg`Cu4h2)IH z+=60-%)GM1oXnKe;>n^yjg!9$xiE50wh}g{ ogTxj##=6a^@>7^t6 zH48{314Aua4cp`>0dsM-6qXvs*$gSHbD38&LF5=2fO0DYJk`@`*-L~WVhjv5?5i0e z>{^ZzPMBy4dkx2A2|?A#^@5xtwVXAaMG7V2a7m6D&dE`Ns)3v^t&9wL0!W&X#3LC} zm}}YV*ejV~tUL~gNI7FULj_Q@oU!MPCReE&&~$~#YXyyj6AKD*G7C#n6>?G)(lT>O zic%FOa|kuYmqr1Vc;*)57Z+zH0p(KEGgDIYN;1 z0hytv;8;|2cvXo)3edPjg`&eNlS>N@uPg$}=H~$gixpDx^YRX_OfA-%+$rS3$Tj(# zkU692WJX~nR#4z8OjZ|mWt5qmE39fE!K?7V*zuZt(hAiBp%;P@FS#ZzV!a@rG=T?5 z+>lecE@yC2&R~PccKMC+2h>hjp3uG!o_tv@W%3zednsWCg=EGbU&I(hq^H|Xw7o8@ zc~MyN69YG|!emtudvy`z>muqGMbuaDUKKHWA|ii5spg7E-5qK9FYFAW=D$A(0u}!H zAUnBMM4R7*pZSocqqqwf^ARpq7yixLMfw>T(>J?|y<%i6-fSeXg^jU#^K-c=OssOO a3ZEP%Hz=MEjAUYrWBkMbriw&>9s>Yx%B!dV diff --git a/exported_tickets/ticket_T10929_raw.json b/exported_tickets/ticket_T10929_raw.json new file mode 100644 index 0000000..1ba3ba8 --- /dev/null +++ b/exported_tickets/ticket_T10929_raw.json @@ -0,0 +1,3 @@ +[ + 10908 +] \ No newline at end of file diff --git a/ticket_manager.py b/ticket_manager.py index 4e20b3c..ced554d 100644 --- a/ticket_manager.py +++ b/ticket_manager.py @@ -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"""