2.7 KiB
2.7 KiB
🧠 MEMORY.md — Stato Progetto
Goal
- Implementare page-length selector su liste (Individui, Eventi, Email)
- Implementare CSV import per gruppi
- Implementare ICS import per eventi
- Creare script build-dist.sh per distribuzione
Modifiche Effettuate (10 file + 3 nuovi)
File modificati
| File | Cosa |
|---|---|
app/Http/Controllers/IndividuoController.php |
perPage support (20 default, clamp [10,20,25,50,100]) |
app/Http/Controllers/EventoController.php |
perPage + importIcs/importIcsStore (Sabre\VObject) |
app/Http/Controllers/GruppoController.php |
import/importStore/downloadTemplate CSV gruppi |
app/Http/Controllers/EmailController.php |
perPage support |
app/Models/Evento.php |
uid_esterno aggiunto a $fillable (bug fix) |
resources/views/individui/index.blade.php |
dropdown perPage in card-footer |
resources/views/eventi/index.blade.php |
dropdown perPage + pulsante Importa ICS |
resources/views/gruppi/index.blade.php |
pulsante Importa CSV |
resources/views/email/index.blade.php |
dropdown perPage in card-footer |
routes/web.php |
route gruppi/import, gruppi/template, eventi/import |
File nuovi
| File | Cosa |
|---|---|
resources/views/gruppi/import.blade.php |
form upload CSV gruppi |
resources/views/eventi/import.blade.php |
form upload ICS eventi |
build-dist.sh |
script build distribuzione |
Feature
1. Page-length selector
- 3 pagine: Individui, Eventi, Email
- Valori: 10, 20, 25, 50, 100 (default 20)
- Dropdown nel card-footer con hidden fields per preservare altri query param
2. CSV Import Gruppi
- Stesso pattern di
IndividuoController(import GET, importStore POST, downloadTemplate GET) - Colonne: nome, descrizione, parent_id, diocesi_id, indirizzo_incontro, cap_incontro, città_incontro, sigla_provincia_incontro
- Fault-tolerant: skip righe vuote, log errori
3. ICS Import Eventi
- Usa
Sabre\VObject\Reader::read()già in vendor/ - Mapping: SUMMARY→nome_evento, DESCRIPTION→descrizione, DTSTART→data_specifica+ora_inizio, DTEND→durata_minuti, LOCATION→luogo_indirizzo, UID→uid_esterno
- Dedup via uid_esterno
- RRULE: import come evento singolo con prima occorrenza
4. Script build-dist.sh
- Genera
glastree-YYYYMMDD_HHMM.tar.gz(~26MB) - Include: sorgenti, vendor (production), Dockerfile, docker-compose, install.php, install.sql
- Esclude: .git, node_modules, tests, cache, storage content, vendor/docs/tests
Installazione su server remoto
# Estrarre
tar xzf glastree-20260607_2052.tar.gz
# Configurare
cp .env.example .env
php artisan key:generate
php artisan storage:link
# Opzione A — Docker
docker compose up -d
# Opzione B — Apache nativo (MySQL)
php install.php