docs: Add devlogs for safety training and communications modules, and update the main development status index.

This commit is contained in:
2025-12-12 11:00:28 +01:00
parent 6d1aef3a42
commit dedd4f4e69
4 changed files with 122 additions and 0 deletions

View File

@@ -12,6 +12,8 @@ Il software si chiama Zentral e, tramite diverse applicazioni, si occupa di gest
- magazzino (Gestione inventario, movimenti di magazzino, giacenze e valorizzazione scorte)
- HR (o personale) (Gestione personale, contratti, pagamenti, assenze, rimborsi e analisi personale)
- report e stampe (Gestione report, creazione e analisi report)
- comunicazioni (Gestione invio mail, chat interna, condivisione risorse del gestionale ad interni ed esterni)
- corsi e formazione (Gestione corsi di formazione, erogazione corsi, tracciabilità scadenze)
mostra statistiche grafiche per ogni applicazione nella dashboard dell'applicazione.

View File

@@ -49,3 +49,7 @@ File riassuntivo dello stato di sviluppo di Zentral.
- Corretta chiave di traduzione errata per la tab "Gestione Applicazioni" e migliorata la gestione dell'aggiornamento etichette tab.
- [2025-12-06 Auto Codes Reorganization](./devlog/2025-12-06-021000_autocodes_reorg.md) - **Completato**
- Riorganizzazione UI Auto Codes, allineamento stile a Custom Fields, miglioramento traduzioni e categorizzazione.
- [2025-12-12 - Modulo Comunicazioni](./devlog/2025-12-12-110000_communications_module.md) - **In Corso**
- Implementazione invio email e gestione comunicazioni.
- [2025-12-12 - Gestione Scadenzario Formazione Sicurezza](./devlog/2025-12-12-105500_safety_training_schedule.md) - **In Corso**
- Implementazione modulo sicurezza, formazione e scadenziario.

View File

@@ -0,0 +1,65 @@
# Implementazione Gestione Scadenzario Formazione Sicurezza
## Obiettivo
Configurare il flusso per la gestione dello scadenzario della formazione sicurezza, accentrando dati e scadenze, abbandonando file Excel disconnessi.
## Strategia
Mapping delle funzionalità sui moduli esistenti:
1. **Anagrafica Corsi** -> Modulo **Magazzino** (`Articolo`)
2. **Anagrafica Soggetti** -> Modulo **Clienti** (`Cliente` + nuova entità `ClienteContatto`)
3. **Gestione Attestati e Scadenze** -> Nuovo Modulo **Safety** (o estensione Eventi/Qualità)
4. **Workflow Notifiche** -> Human-in-the-loop tramite Dashboard dedicato.
## Piano di Lavoro
### 1. Documentazione e Analisi
- [ ] Creazione piano di lavoro (questo file).
- [ ] Aggiornamento `ZENTRAL.md`.
### 2. Backend (.NET)
#### Domain Layer
- [ ] **Modifica Entity `Articolo`**:
- Aggiungere `int? DurataValiditaAnni` (Validità del corso).
- Aggiungere `bool IsCorsoFormazione` (Flag identificativo).
- [ ] **Nuova Entity `ClienteContatto`**:
- Proprietà: `Nome`, `Cognome`, `Email`, `Ruolo`, `Telefono`, foreign key a `Cliente`.
- Aggiornare `Cliente` con collection `Contatti`.
- [ ] **Nuova Entity `TrainingRecord` (Safety)**:
- Proprietà: `ClienteContattoId`, `ArticoloId` (Corso), `DataEsecuzione`, `DataScadenza` (Calcolata), `AttestatoUrl`, `Stato` (Valid, Expiring, Expired).
- Note e audit log.
#### Infrastructure / EF Core
- [ ] Creare Migrazione EF per le nuove entità e modifiche.
- [ ] Aggiornare `ApplicationDbContext`.
#### API Layer
- [ ] **Aggiornare `ArticoliController`**: Gestione nuovi campi.
- [ ] **Aggiornare `ClientiController`**: Gestione CRUD Contatti.
- [ ] **Nuovo `TrainingController`**:
- CRUD TrainingRecords.
- Upload file attestato.
- Endpoint `GetExpiringTrainings` per la dashboard (filtri per data, azienda).
- Endpoint `approve-notification`: Utilizza il nuovo servizio `IEmailSender` per inviare le notifiche.
### 3. Frontend (React)
#### Modulo Safety (Nuova App `safety`)
- [ ] **Setup Modulo**: Creare cartella `src/frontend/src/apps/safety` e configurare route.
- [ ] **Componenti**:
- `SafetyDashboard`: Widget con scadenze imminenti e scadute.
- `CourseRegistry`: Tabella corsi (Articoli filtrati).
- `TrainingMatrix`: Vista lavoratori x corsi o lista formazioni.
- `TrainingForm`: Modale inserimento/modifica formazione (Caricamento file, calcolo automatico scadenza).
#### Integrazione Moduli Esistenti
- [ ] **Magazzino**: Aggiungere campi Validità nel form Articolo.
- [ ] **Clienti**: Aggiungere Tab "Contatti" nel dettaglio Cliente per gestire i lavoratori.
### 4. Workflow e Notifiche
- [ ] Implementare logica "Human-in-the-loop": Liste "Da Inviare" nella Dashboard.
- [ ] Integrazione con il **Modulo Email Standard**: Chiamata al servizio di invio email reale.
### 5. Verifica e Test
- [ ] Test flusso completo: Creazione Corso -> Creazione Lavoratore -> Registrazione Formazione -> Verifica Scadenza -> Notifica.
## Stato Attuale
- Inizio analisi e setup.

View File

@@ -0,0 +1,51 @@
# Implementazione Modulo Comunicazioni (Ex Email Standard)
## Obiettivo
Implementare il modulo **Comunicazioni** (`communications`), inizialmente focalizzato sulla gestione centralizzata dell'invio email (SMTP).
Questo modulo servirà da fondamento per tutte le comunicazioni in uscita (e in futuro interne) del gestionale.
## Strategia
Il modulo gestirà sia l'infrastruttura tecnica (Service Layer per invio mail) sia l'interfaccia utente per la configurazione e il monitoraggio (Log).
Sarà allineato alla visione del modulo "Comunicazioni" (Gestione invio mail, chat interna, ecc.).
## Piano di Lavoro
### 1. Documentazione
- [ ] Aggiornamento piano di lavoro (questo file).
- [ ] Aggiornamento `ZENTRAL.md`.
### 2. Backend (.NET)
#### Domain Layer (`Zentral.Domain`)
- [ ] **Interfaccia `IEmailSender`**: Contratto standard per l'invio.
- [ ] **Entities (Namespace `Communications`)**:
- `EmailLog`: Storico invii (`Id`, `Data`, `Mittente`, `Destinatario`, `Oggetto`, `Stato`, `Errore`).
- `EmailTemplate` (Opzionale Fase 1): Per standardizzare il layout delle mail.
#### Infrastructure Layer (`Zentral.Infrastructure`)
- [ ] **Implementazione `SmtpEmailSender`**:
- Logica di invio tramite MailKit.
- Integrazione con `Configurazione` per leggere le credenziali SMTP a runtime.
- Salvataggio automatico del log in `EmailLog`.
#### API Layer (`Zentral.API`)
- [ ] **Controller `CommunicationsController`**:
- Endpoint per test invio.
- Endpoint per consultazione Logs.
- Endpoint per salvataggio Configurazione SMTP.
### 3. Frontend (React)
#### Modulo `communications` (`src/apps/communications`)
- [ ] **Setup App**: Creazione struttura standard modulo.
- [ ] **Settings Page**:
- Form per configurazione SMTP (Host, Port, User, Pass, SSL).
- Pulsante "Test Connessione".
- [ ] **Logs Page**:
- Tabella visualizzazione storico email inviate con stato (Successo/Errore).
## Integrazione
- Il servizio `IEmailSender` sarà iniettato negli altri moduli (es. Safety) per l'invio delle notifiche.
## Verifica
- [ ] Configurazione SMTP (es. Mailtrap).
- [ ] Test invio mail da interfaccia.
- [ ] Verifica scrittura Log su DB.