From c0aa4cfa42a6cc680d9fc8e2ff693245c66c82ed Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Tue, 18 Mar 2025 17:23:58 +0100 Subject: [PATCH] J5-7 --- __pycache__/menu_principal.cpython-312.pyc | Bin 1351 -> 1351 bytes __pycache__/ticket_manager.cpython-312.pyc | Bin 8889 -> 8998 bytes exported_tickets/ticket_T10929_raw.json | 3 --- menu_principal.py | 2 +- ticket_manager.py | 19 ++++++++++++------- 5 files changed, 13 insertions(+), 11 deletions(-) delete mode 100644 exported_tickets/ticket_T10929_raw.json diff --git a/__pycache__/menu_principal.cpython-312.pyc b/__pycache__/menu_principal.cpython-312.pyc index b9a3bff0992142d927bd3895719e280edd162c7b..8b577366709d46e17f2b3697916e1f9a4f320989 100644 GIT binary patch delta 26 gcmX@kb)1XqG%qg~0}%Y2vysbziP2=UH`5;`0An}@VE_OC delta 26 gcmX@kb)1XqG%qg~0}!Y-Zsc-cVl>_C&Gd%}09Q5!a{vGU diff --git a/__pycache__/ticket_manager.cpython-312.pyc b/__pycache__/ticket_manager.cpython-312.pyc index d6c30274adde69c7211463452a5269127959ffa2..cc91af04a3c8adb80df54324f526b3985cec39e7 100644 GIT binary patch delta 614 zcmdn#y3CFDG%qg~0}wo&do%t1M&611jCPaf^H*@P*0R*F7W0&_Pd1bkW2s@t;+!lf zEj)QQzoMB*z)-`!ni0aT#SuSO=yokMoJcB|qq}mjC@hmXBBASFt_NO)FTOq!`w4I*GDuV*wJo_<`JmT>2o= zN(x9G5@iLEQnD^G%!kY!xn0DWkFbMDaaI?Z&Elf{jEn`Fmy5k(WUSddNn#5dW6NfD g`6*1S>Z}T%f+jyuJRz9G#2Cl;i2+O%i2&^c0C3@=od5s; delta 563 zcmZ4Hw$qjOG%qg~0}!OoxtY$nk#{0LqtfL0{1xm>wJbFZS?rTHifWoO)-a|s)-bJR z0V!l)sAa8TE#@!bgzy*`QkZHOXEV%YTFnR%VPvRe2I}Po>J^q`O<@7arm)UsUd;rP zuVGDLn|w^bQp-1K~;AS zmGDFmrGnO+{Fh??!Giq{8ek7PMxm-w#(QooXp}A~I zKzoYVCc6mhFmg^V6gHo{R#=V&rkJwA^+4%`kmO75 z$%|AkD5gx{0}>zD803|&%NbmhGuR-qU4End0kspBC$ukwr(Tvzo7^H|FCosLl*;(y zixh*1^mN;aw%3Io;$apTfkd$g1$kW3sQ(3Bgz<#yG}L3}C8A1ZX7y DG6aXE diff --git a/exported_tickets/ticket_T10929_raw.json b/exported_tickets/ticket_T10929_raw.json deleted file mode 100644 index 1ba3ba8..0000000 --- a/exported_tickets/ticket_T10929_raw.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - 10908 -] \ No newline at end of file diff --git a/menu_principal.py b/menu_principal.py index 47f7b5c..da38d13 100644 --- a/menu_principal.py +++ b/menu_principal.py @@ -11,7 +11,7 @@ def display_main_menu(): print("2. Rechercher un ticket par ID") print("3. Rechercher un ticket par Code") print("4. Quitter") - return input("\nChoisissez une option (1-5): ") + return input("\nChoisissez une option (1-4): ") def run_menu(): diff --git a/ticket_manager.py b/ticket_manager.py index 0c7e9f7..49b30bf 100644 --- a/ticket_manager.py +++ b/ticket_manager.py @@ -70,16 +70,20 @@ class TicketManager: def get_ticket_by_id(self, ticket_id): """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 + fields_to_read = self.get_model_fields(self.model_name) # Récupère tous les champs excluded_fields = set() # Liste des champs à exclure - + while True: try: - # 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] + # Mise à jour de fields_to_read en supprimant les champs invalides + valid_fields = [field for field in fields_to_read if field not in excluded_fields] + + if not valid_fields: + print_error("Aucun champ valide disponible pour la requête.") + return None # 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) + ticket_data = self._safe_execute(self.model_name, 'read', [ticket_id], valid_fields) if not ticket_data: print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}") @@ -98,12 +102,13 @@ class TicketManager: if invalid_field: print(f"Exclusion du champ invalide : {invalid_field}") excluded_fields.add(invalid_field) - continue + + # Relancer la boucle immédiatement avec le champ exclu + continue 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""" domain = [('code', '=', ticket_code)]