From ee165844426a25f4b562a2be61c71b2d10ce1226 Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Tue, 18 Mar 2025 11:39:23 +0100 Subject: [PATCH] correctifs2 --- menu_handlers.py | 27 ------------------- menu_principal.py | 19 +++----------- old_functions.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++ ticket_manager.py | 39 ---------------------------- 4 files changed, 69 insertions(+), 82 deletions(-) create mode 100644 old_functions.py diff --git a/menu_handlers.py b/menu_handlers.py index 2d9f4aa..99ce47d 100644 --- a/menu_handlers.py +++ b/menu_handlers.py @@ -4,33 +4,6 @@ from utils import get_user_choice # Initialisation de l'objet ticket_manager = TicketManager() -def handle_list_models(): - """Gère l'affichage de la liste des modèles""" - ticket_manager.list_models() - - -def handle_list_model_fields(): - """Gère l'affichage des champs d'un modèle""" - model_name = input("\nEntrez le nom du modèle: ") - if not model_name: - print("Aucun nom de modèle fourni.") - return - ticket_manager.list_model_fields(model_name) - - -def handle_export_model_fields_to_json(): - """Gère l'exportation des informations des champs d'un modèle en JSON""" - model_name = input("\nEntrez le nom du modèle: ") - if not model_name: - print("Aucun nom de modèle fourni.") - return - filename = input("Entrez le nom du fichier pour l'exportation: ") - if not filename: - print("Aucun nom de fichier fourni.") - return - ticket_manager.export_model_fields_to_json(model_name, filename) - - def handle_project_tickets_by_stage(): """Gère l'exportation des tickets d'un projet par étape""" # Récupérer la liste des projets disponibles diff --git a/menu_principal.py b/menu_principal.py index 7bab97b..692e441 100644 --- a/menu_principal.py +++ b/menu_principal.py @@ -1,18 +1,12 @@ from menu_handlers import ( - handle_list_models, - handle_list_model_fields, - handle_export_model_fields_to_json, handle_project_tickets_by_stage ) def display_main_menu(): """Affiche le menu principal de l'application""" print("\n==== GESTIONNAIRE DE TICKETS ODOO ====") - print("1. Afficher la liste des modèles") - print("2. Afficher les champs d'un modèle") - print("3. Exporter les informations des champs d'un modèle en JSON") - print("4. Exporter les tickets d'un project_id par étape") - print("5. Quitter") + print("1. Exporter les tickets d'un project_id par étape") + print("2. Quitter") return input("\nChoisissez une option (1-5): ") @@ -20,16 +14,9 @@ def run_menu(): """Exécute la boucle du menu principal""" while True: choice = display_main_menu() - if choice == '1': - handle_list_models() - elif choice == '2': - handle_list_model_fields() - elif choice == '3': - handle_export_model_fields_to_json() - elif choice == '4': handle_project_tickets_by_stage() - elif choice == '5': + elif choice == '2': print("Au revoir!") break else: diff --git a/old_functions.py b/old_functions.py new file mode 100644 index 0000000..2316bee --- /dev/null +++ b/old_functions.py @@ -0,0 +1,66 @@ +def handle_list_models(): + """Gère l'affichage de la liste des modèles""" + ticket_manager.list_models() + + + +def handle_list_model_fields(): + """Gère l'affichage des champs d'un modèle""" + model_name = input("\nEntrez le nom du modèle: ") + if not model_name: + print("Aucun nom de modèle fourni.") + return + ticket_manager.list_model_fields(model_name) + + +def handle_export_model_fields_to_json(): + """Gère l'exportation des informations des champs d'un modèle en JSON""" + model_name = input("\nEntrez le nom du modèle: ") + if not model_name: + print("Aucun nom de modèle fourni.") + return + filename = input("Entrez le nom du fichier pour l'exportation: ") + if not filename: + print("Aucun nom de fichier fourni.") + return + ticket_manager.export_model_fields_to_json(model_name, filename) + + ///partie ticket_manager.py + def list_models(self): + """Affiche la liste des modèles disponibles dans Odoo""" + models = self._safe_execute('ir.model', 'search_read', [], ['model', 'name']) + if not models: + print_error("Aucun modèle disponible.") + return [] + + print("\nListe des modèles disponibles:") + for model in models: + print(f"Modèle: {model['name']} (ID: {model['model']})") + return models + + def list_model_fields(self, model_name): + """Affiche les champs d'un modèle donné""" + fields_info = self._safe_execute(model_name, 'fields_get') + if not fields_info: + print_error(f"Aucun champ trouvé pour le modèle {model_name}.") + return [] + + print(f"\nChamps du modèle {model_name}:") + for field_name, field_data in fields_info.items(): + print(f"Champ: {field_name} - Type: {field_data['type']}") + return fields_info + + def export_model_fields_to_json(self, model_name, filename): + """Exporte les champs d'un modèle dans un fichier JSON""" + fields_info = self._safe_execute(model_name, 'fields_get') + if not fields_info: + print_error(f"Aucun champ trouvé pour le modèle {model_name}.") + return + + data = {field_name: field_data['type'] for field_name, field_data in fields_info.items()} + filepath = os.path.join(EXPORT_DIR, filename) + + if save_json(filepath, data): + print(f"Champs du modèle {model_name} exportés dans {filepath}") + else: + print_error(f"Erreur lors de l'exportation des champs du modèle {model_name} dans {filepath}") \ No newline at end of file diff --git a/ticket_manager.py b/ticket_manager.py index 00159e4..e264c5c 100644 --- a/ticket_manager.py +++ b/ticket_manager.py @@ -60,45 +60,6 @@ class TicketManager: # Nettoyer et filtrer les données du ticket return filter_ticket_data(ticket_data[0]) # Utilisation de data_filter.py - def list_models(self): - """Affiche la liste des modèles disponibles dans Odoo""" - models = self._safe_execute('ir.model', 'search_read', [], ['model', 'name']) - if not models: - print_error("Aucun modèle disponible.") - return [] - - print("\nListe des modèles disponibles:") - for model in models: - print(f"Modèle: {model['name']} (ID: {model['model']})") - return models - - def list_model_fields(self, model_name): - """Affiche les champs d'un modèle donné""" - fields_info = self._safe_execute(model_name, 'fields_get') - if not fields_info: - print_error(f"Aucun champ trouvé pour le modèle {model_name}.") - return [] - - print(f"\nChamps du modèle {model_name}:") - for field_name, field_data in fields_info.items(): - print(f"Champ: {field_name} - Type: {field_data['type']}") - return fields_info - - def export_model_fields_to_json(self, model_name, filename): - """Exporte les champs d'un modèle dans un fichier JSON""" - fields_info = self._safe_execute(model_name, 'fields_get') - if not fields_info: - print_error(f"Aucun champ trouvé pour le modèle {model_name}.") - return - - data = {field_name: field_data['type'] for field_name, field_data in fields_info.items()} - filepath = os.path.join(EXPORT_DIR, filename) - - if save_json(filepath, data): - print(f"Champs du modèle {model_name} exportés dans {filepath}") - else: - print_error(f"Erreur lors de l'exportation des champs du modèle {model_name} dans {filepath}") - def export_tickets_by_project_and_stage(self, project_id, selected_stage_ids=None): """ Exporte les tickets d'un projet classés par étape """