diff --git a/__pycache__/menu_principal.cpython-312.pyc b/__pycache__/menu_principal.cpython-312.pyc index b9a3bff..8b57736 100644 Binary files a/__pycache__/menu_principal.cpython-312.pyc and b/__pycache__/menu_principal.cpython-312.pyc differ diff --git a/__pycache__/ticket_manager.cpython-312.pyc b/__pycache__/ticket_manager.cpython-312.pyc index d6c3027..cc91af0 100644 Binary files a/__pycache__/ticket_manager.cpython-312.pyc and b/__pycache__/ticket_manager.cpython-312.pyc differ 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)]