This commit is contained in:
Ladebeze66 2025-03-18 17:23:58 +01:00
parent a9924020ef
commit c0aa4cfa42
5 changed files with 13 additions and 11 deletions

View File

@ -1,3 +0,0 @@
[
10908
]

View File

@ -11,7 +11,7 @@ def display_main_menu():
print("2. Rechercher un ticket par ID") print("2. Rechercher un ticket par ID")
print("3. Rechercher un ticket par Code") print("3. Rechercher un ticket par Code")
print("4. Quitter") print("4. Quitter")
return input("\nChoisissez une option (1-5): ") return input("\nChoisissez une option (1-4): ")
def run_menu(): def run_menu():

View File

@ -70,16 +70,20 @@ class TicketManager:
def get_ticket_by_id(self, ticket_id): 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""" """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 excluded_fields = set() # Liste des champs à exclure
while True: while True:
try: try:
# Mise à jour de fields_to_read en supprimant les champs exclus # Mise à jour de fields_to_read en supprimant les champs invalides
fields_to_read = [field for field in fields_to_read if field not in excluded_fields] 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 # 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: if not ticket_data:
print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}") print_error(f"Aucun ticket trouvé avec l'ID {ticket_id}")
@ -98,12 +102,13 @@ class TicketManager:
if invalid_field: if invalid_field:
print(f"Exclusion du champ invalide : {invalid_field}") print(f"Exclusion du champ invalide : {invalid_field}")
excluded_fields.add(invalid_field) excluded_fields.add(invalid_field)
# Relancer la boucle immédiatement avec le champ exclu
continue continue
else: else:
print_error("Impossible d'identifier le champ problématique.") print_error("Impossible d'identifier le champ problématique.")
return None return None
def get_ticket_by_code(self, ticket_code): def get_ticket_by_code(self, ticket_code):
"""Récupérer un ticket via son code""" """Récupérer un ticket via son code"""
domain = [('code', '=', ticket_code)] domain = [('code', '=', ticket_code)]