Files
glastree/MEMORY.md
T

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