# 🧠 MEMORY.md β€” Stato Progetto ## Goal - Implementare 3 feature in Glastree Laravel 13: 1. **Page-length selector** su pagine lista (Individui, Eventi, Email) 2. **CSV import per gruppi** (stesso pattern import individui) 3. **ICS import per eventi** (via sabre/vobject) ## Constraints & Preferences - Laravel 13, PHP 8.4, AdminLTE 4, MySQL/MariaDB - Zero placeholder, zero TODO, codice funzionante - Seguire pattern esistenti (individui import, controller conventions, view layouts) - sabre/vobject giΓ  installato in composer.json (verificato funzionante in vendor/) - UI in Italiano come da applicazione esistente ## Verifica Finale β€” Tutto OK βœ… | Controllo | Risultato | |-----------|-----------| | Syntax PHP tutti i file modificati | βœ… Nessun errore | | Bilanciamento `{}` JS in tutte le views | βœ… Tutte bilanciate | | Rotta `gruppi.import` GET | βœ… Registrata | | Rotta `gruppi.import.store` POST | βœ… Registrata | | Rotta `gruppi.template` GET | βœ… Registrata | | Rotta `eventi.import` GET | βœ… Registrata | | Rotta `eventi.import.store` POST | βœ… Registrata | | View `gruppi/import.blade.php` | βœ… Creata | | View `eventi/import.blade.php` | βœ… Creata | | sabre/vobject loadabile | βœ… `Sabre\VObject\Reader` disponibile | ## Modifiche Effettuate ### 1. Page-length selector (3 pagine) **File modificati:** - `app/Http/Controllers/IndividuoController.php:20` β€” `paginate(20)` β†’ `paginate($perPage)` con clamp `[10,20,25,50,100]`, default 20 - `app/Http/Controllers/EventoController.php:48-49` β€” stessa logica, default 20 - `app/Http/Controllers/EmailController.php:61-62` β€” stessa logica, default 20 - `resources/views/individui/index.blade.php` β€” dropdown `