Files
zentral/docs/development/devlog/2025-12-13-170000_mandatory_training_implementation.md

1.9 KiB

Implementazione Modulo Formazione Obbligatoria (Mandatory Training)

Stato: Completato

Ho completato l'implementazione del modulo Formazione Obbligatoria seguendo le specifiche definite in 2025-12-13-164500_mandatory_training_specs.md.

Modifiche Apportate

Backend

  1. Entities:
    • Creata TrainingNotification in Zentral.Domain per gestire la coda di notifiche.
    • Aggiornato ZentralDbContext (DbSet).
    • Creata migrazione AddTrainingNotifications.
  2. Services:
    • Creato TrainingNotificationService:
      • Logica GenerateNotificationsAsync: raggruppa scadenze per Cliente, crea notifiche Pending.
      • Logica SendApprovedNotificationsAsync: invia email per notifiche Approved.
      • Generazione corpo email HTML con tabella riepilogativa.
    • Registrato servizio in Program.cs.
  3. Controllers:
    • Creato TrainingNotificationsController:
      • Endpoints per Listing, Generazione, Approvazione, Modifica e Invio.
    • Aggiornato AppService (verifica esistenza modulo, usato nei service).

Frontend

  1. Pagine Nuove (App Training):
    • TrainingDeadlinesPage: Scadenzario tabellare con indicatori di stato.
    • NotificationCenterPage: Gestione coda notifiche (Approvazione/Modifica/Invio).
    • WorkersRegistryPage: Registro lavoratori con stato formativo aggregato.
    • DataExchangePage: Placeholder per Import/Export.
  2. Navigazione:
    • Aggiornato Sidebar.tsx con le nuove voci di menu sotto "Formazione" ("Lavoratori", "Scadenze", "Notifiche", "Import/Export").
    • Aggiornato routes.tsx con le relative rotte.

Note per il Testing

  • Per testare le notifiche:
    1. Andare in "Notifiche".
    2. Cliccare "Genera".
    3. Verificare la creazione di notifiche per le aziende con scadenze.
    4. Approvare una notifica.
    5. Cliccare "Invia Approvate".
  • Assicurarsi che il modulo "Comunicazioni" sia attivo e configurato (SMTP).