++ HANDOFF e README allineati all'ultima versione delle funzionalita'
HANDOFF: stato attuale vero (produzione dal 19/10, cosa c'e' solo su dev e come rilasciarlo), sezione dei gruppi di servizio descritta com'e' oggi con la storia delle decisioni in coda, lavori recenti in ordine, cronologia di luglio-agosto in "Da dove veniamo", ambienti con autodeploy che non parte e test sul server prima del push, copertura dei test (577 + 13), frasi superate su WhatsApp/email/contatti corrette. README: impostazioni reali della pagina, due liste della Home, soglia di priorita' in giorni e ordine di priorita', deploy a mano, struttura del progetto. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
70
README.md
70
README.md
@@ -1,8 +1,9 @@
|
||||
# TerManager2
|
||||
|
||||
Applicazione web per la gestione dell'assegnazione e del rientro dei territori
|
||||
(cartoline) di congregazione, con statistiche di percorrenza, campagne speciali
|
||||
e registro storico completo.
|
||||
(cartoline) di congregazione, con statistiche di percorrenza, campagne speciali,
|
||||
gruppi di servizio (un sorvegliante distribuisce ai membri un pacchetto di
|
||||
territori) e registro storico completo.
|
||||
|
||||
I dati personali dei proclamatori sono **cifrati nel database**, e ogni
|
||||
operazione è tracciata in un **audit log** consultabile.
|
||||
@@ -410,24 +411,27 @@ Redis, quindi puntarli su un driver diverso interrompe l'elaborazione dei job.
|
||||
Configurabili dall'interfaccia (**Impostazioni**, permesso `settings.manage`),
|
||||
non da variabili d'ambiente:
|
||||
|
||||
| Impostazione | Descrizione |
|
||||
|--------------------------------|------------------------------------------------------|
|
||||
| Nome congregazione | Mostrato nell'intestazione e nei PDF |
|
||||
| Logo | Immagine nell'intestazione |
|
||||
| URL pubblico base | Base dei link PDF condivisibili |
|
||||
| Giorni giacenza "da assegnare" | Soglia oltre cui un territorio è da assegnare |
|
||||
| Mesi giacenza "prioritari" | Soglia oltre cui un territorio diventa prioritario |
|
||||
| Giorni per "smarrito" | Soglia oltre cui un'assegnazione è da rientrare |
|
||||
| Elementi nelle liste della home| Quanti record mostrare nelle tre liste rapide |
|
||||
| Validità link PDF (mesi) | Scadenza dei link pubblici alle cartoline |
|
||||
| Download PDF visibile | Mostra o nasconde il pulsante di download |
|
||||
| Retention audit log (giorni) | Dopo quanti giorni i log vengono cancellati |
|
||||
| Impostazione | Descrizione |
|
||||
|------------------------------------|------------------------------------------------------|
|
||||
| Nome congregazione | Mostrato nell'intestazione, nei PDF e nell'informativa |
|
||||
| Soglia da assegnare (giorni) | Dopo quanti giorni dal rientro un territorio è "da assegnare" |
|
||||
| Soglia priorità (giorni) | Dopo quanti giorni dal rientro un territorio diventa prioritario |
|
||||
| Soglia rientro (giorni) | Oltre questa un'assegnazione è "da rientrare"; è anche la durata del link alla piantina |
|
||||
| Limite liste Home | Quanti territori mostrare nelle due liste della Home |
|
||||
| "Scarica PDF" nel viewer | Mostra o nasconde il pulsante di download a chi apre il link |
|
||||
| Conservazione audit (giorni) | Dopo quanti giorni le voci del registro delle attività si cancellano |
|
||||
|
||||
Il server di posta ha una pagina sua (*Impostazioni → Server di posta*). Il
|
||||
logo nell'intestazione, se c'è, arriva da un backup: la pagina non lo carica.
|
||||
|
||||
---
|
||||
|
||||
## Aggiornamenti
|
||||
|
||||
Push su `main` → **Deploy** su Dokploy. Ad ogni avvio il container:
|
||||
Push su `main` → **Deploy** su Dokploy. Se l'autodeploy non parte entro un
|
||||
paio di minuti (succede: vedi HANDOFF, *Dove gira davvero*), il deploy si
|
||||
avvia a mano dall'interfaccia o con `compose.deploy`. Ad ogni avvio il
|
||||
container:
|
||||
|
||||
1. ricrea le directory di storage e risolve `APP_KEY`
|
||||
2. attende il database
|
||||
@@ -687,9 +691,11 @@ docker compose --profile dev up -d --build
|
||||
- Anno teocratico corrente (creato automaticamente, settembre → agosto)
|
||||
- Media mensile di percorrenza e durata media delle assegnazioni
|
||||
- Campagna attiva con barra di progresso
|
||||
- Tre liste rapide con azione diretta: **da assegnare**, **prioritari**,
|
||||
**da rientrare**; quando l'elenco è troncato, **"Vedi tutti"** è un pulsante
|
||||
in testata che apre l'elenco territori già filtrato
|
||||
- Due liste rapide con azione diretta: **da assegnare** (prima i prioritari,
|
||||
con il badge ★, poi quelli fermi da più tempo) e **da rientrare**; quando
|
||||
l'elenco è troncato, **"Vedi tutti"** è un pulsante in testata che apre
|
||||
l'elenco territori già filtrato. "Assegna →" apre la pagina *Assegna* con
|
||||
il territorio scelto e senza l'elenco dei territori assegnati
|
||||
|
||||
### Territori
|
||||
- CRUD completo con upload PDF e miniatura generata automaticamente
|
||||
@@ -949,10 +955,16 @@ Calcolato dinamicamente, non memorizzato:
|
||||
| `inattivo` | Contrassegnato come non attivo |
|
||||
|
||||
### Priorità
|
||||
Un territorio è prioritario se lo è per **flag manuale** o perché non viene
|
||||
assegnato da più mesi della soglia configurata. La soglia automatica **vince
|
||||
sempre** sul flag: l'amministratore può aggiungere priorità, non toglierla
|
||||
quando la soglia è scattata.
|
||||
Un territorio è prioritario se lo è per **flag manuale** o perché è fermo
|
||||
(dall'ultimo rientro, o dalla creazione se mai assegnato) da più giorni della
|
||||
soglia configurata. La soglia automatica **vince sempre** sul flag:
|
||||
l'amministratore può aggiungere priorità, non toglierla quando la soglia è
|
||||
scattata. Assegnare il territorio azzera il flag.
|
||||
|
||||
Dove si sceglie un territorio da dare — "Da assegnare" nella Home, l'aggiunta
|
||||
al pacchetto di un gruppo, "Il mio gruppo" — l'ordine è lo stesso: prima i
|
||||
prioritari, poi quelli fermi da più tempo, poi il numero
|
||||
(`Territorio::ordinaPerPriorita()`).
|
||||
|
||||
### Percentuale di percorrenza delle campagne
|
||||
- **Denominatore**: tutti i territori attivi
|
||||
@@ -1000,14 +1012,16 @@ sempre.
|
||||
```
|
||||
TerManager2/
|
||||
├── app/
|
||||
│ ├── Console/Commands/ # audit:cleanup, backup:cleanup, app:create-initial-admin
|
||||
│ ├── Console/Commands/ # audit:cleanup, backup:cleanup, app:create-initial-admin,
|
||||
│ │ # utenti:conferma-email, territori:file-orfani
|
||||
│ ├── Http/Controllers/ # PDF pubblici, import, backup, login, cambio password
|
||||
│ ├── Http/Middleware/ # RequirePasswordChange
|
||||
│ ├── Http/Middleware/ # RequirePasswordChange, LimitaSorvegliante
|
||||
│ ├── Jobs/ # Import PDF, backup, ripristino, azzeramento (in coda)
|
||||
│ ├── Livewire/ # Tutti i componenti di interfaccia
|
||||
│ ├── Models/ # 9 modelli Eloquent
|
||||
│ ├── Livewire/ # Tutti i componenti di interfaccia (Gruppi/: gruppi di servizio)
|
||||
│ ├── Models/ # 12 modelli Eloquent
|
||||
│ ├── Providers/ # AppServiceProvider
|
||||
│ └── Services/ # Miniature PDF, stato import, archivio backup
|
||||
│ └── Services/ # Miniature PDF, import, archivio backup, posta,
|
||||
│ # piantine, modulo S-13, gruppi di servizio
|
||||
├── bootstrap/app.php # Middleware, proxy e host fidati
|
||||
├── config/ # Configurazione Laravel
|
||||
├── database/
|
||||
@@ -1029,7 +1043,7 @@ TerManager2/
|
||||
│ ├── components/btn.blade.php # L'unico pulsante dell'applicazione
|
||||
│ └── livewire/ # Una vista per componente
|
||||
├── routes/web.php # Rotte con i relativi permessi
|
||||
├── tests/ # Suite PHPUnit (profilo compose "test")
|
||||
├── tests/ # Suite PHPUnit (profilo compose "test") e tests/js (Node)
|
||||
├── phpunit.xml # Configurazione e ambiente dei test
|
||||
├── docker-compose.yml # Unico, produzione e sviluppo
|
||||
├── .env.example # Tutta la configurazione
|
||||
|
||||
Reference in New Issue
Block a user