Report Manager

Le ReportManager est l’orchestrateur central du processus de reporting. Il coordonne la génération du rapport, l’archivage des logs et l’envoi final par e-mail.

Fonctionnalités

  • Orchestration Complète : Sa méthode principale, generate_and_send_report, exécute l’ensemble du pipeline de reporting.

  • Génération de Rapport : Fait appel au module HTML Generator pour créer le rapport HTML détaillé ainsi qu’un résumé pour l’e-mail.

  • Archivage des Logs : Crée une archive .zip contenant le fichier de log de l’application et la base de données SQLite pour faciliter le débogage et l’archivage.

  • Envoi par E-mail : Utilise le module EmailSender pour envoyer un e-mail contenant le résumé du rapport, avec le rapport HTML complet et l’archive des logs en pièces jointes.

  • Nettoyage Automatique : Supprime les fichiers temporaires (rapport HTML et archive zip) après leur envoi pour maintenir un environnement propre.

Usage

Une instance de ReportManager est créée dans le script principal de l’application. Elle est initialisée avec l’instance de ConfigManager pour accéder à toutes les configurations nécessaires (chemins, e-mail, etc.).

Modules

Gestionnaire pour la génération et l’envoi de rapports.

class src.smart_watch.reporting.report_manager.ReportManager(config: ConfigManager, logger)[source]

Bases : object

Gestionnaire pour la génération et l’envoi de rapports.

__init__(config: ConfigManager, logger)[source]
_create_logs_zip() str | None[source]

Crée un fichier zip contenant tous les logs et la base de données.

generate_and_send_report(execution_id: int)[source]

Génère et envoie le rapport par email.

_send_email_report(resume_html: str, fichier_html: str, execution_id: int)[source]

Envoie le rapport par email.