Blog

Nuovi temi e una veste grafica tutta nuova

La release 26.04.07 di Genropy porta con sé un profondo rinnovamento dell’interfaccia utente grazie alla modernizzazione completa del sistema di temi CSS, insieme a importanti novità architetturali come il sistema di invio email, il gestore centralizzato degli errori e il nuovo dispatcher REST API.

Il nuovo sistema di temi: design token e coerenza visiva

La novità più evidente di questa release è il completo rifacimento del sistema di temi e colori. Tutti gli applicativi costruiti con Genropy beneficiano immediatamente di una nuova veste grafica più moderna, coerente e accessibile, senza necessità di modificare una singola riga di codice.

Personalizzazione totale, con la massima semplicità

Il nuovo sistema grafico è costruito interamente su variabili CSS: colori, bordi, spaziature, arrotondamenti — ogni singolo aspetto visivo dell’interfaccia è controllato da una variabile con un nome chiaro e intuitivo. Questo significa che personalizzare l’aspetto di un’applicazione è alla portata di tutti: basta modificare poche variabili per trasformare completamente il look and feel, adattandolo alla propria identità aziendale o alle preferenze dei propri utenti.

Nessun intervento sul codice, nessuna competenza avanzata: è possibile personalizzare tutto direttamente dall’interfaccia web, nella sezione Preferenze, oppure — per chi preferisce un controllo ancora più fine — basta ridefinire le variabili nel proprio foglio di stile CSS.Ogni applicazione costruita con Genropy eredita automaticamente il nuovo sistema, e chi desidera un aspetto personalizzato ha il pieno controllo su ogni dettaglio, dal colore di un bordo alla forma di un pulsante.

Compatibilità browser e selezione del tema

Le chiamate a color-mix() sono state sostituite con valori esadecimali espliciti per massimizzare la compatibilità con tutti i browser. Il meccanismo di selezione del tema è ora unificato: la variabile d’ambiente GNR_CSS_THEME controlla il tema predefinito in modo coerente sia nella configurazione default.xml che nel Dockerfile.

Miglioramenti visivi diffusi

Il rinnovamento grafico tocca ogni angolo dell’interfaccia:

  • Toolbar con sfondi e bordi più contrastati per una migliore leggibilità
  • Tab e pannelli con border-radius corretto e coerente
  • Icone dei rami dell’albero sostituite da triangoli CSS puri, eliminando diverse immagini PNG
  • Input numerici con padding simmetrico
  • Toast con sanitizzazione XSS e nuove opzioni persistent e copyable
  • Hider layer con migliore leggibilità
  • Menu mobile senza duplicazione dei chevron

Grouplet Panel: form complessi, esperienza semplice

Quando un’applicazione gestisce dati articolati — un’anagrafica cliente con indirizzo, contatti, dati fiscali, preferenze — il rischio è quello di presentare all’utente un unico form infinito e dispersivo. I Grouplet di Genropy risolvono questo problema raggruppando i campi in sezioni logiche e riutilizzabili: ogni sezione è un pannello autonomo, navigabile da un menu laterale, che l’utente può compilare, modificare o consultare in modo indipendente.

Con la 26.04.07 il sistema dei Grouplet è stato significativamente migliorato rispetto alle prime versioni già presenti da alcune settimane in develop: i dati di ogni sezione sono ora perfettamente isolati da quelli della pagina ospite, evitando interferenze tra pannelli diversi. L’indicatore di stato mostra segnalazioni solo quando ci sono reali errori di validazione, rendendo l’esperienza di compilazione più chiara e meno rumorosa. Per gli sviluppatori, la nuova architettura rende i grouplet più facili da creare e riutilizzare in contesti diversi dell’applicazione.

Coda email e Mail Proxy

Genropy introduce un sottosistema completo per la gestione dell’invio delle email. Una tabella di coda (message_to_send) memorizza i messaggi in uscita con il relativo stato, mentre una dashboard dedicata permette agli operatori di monitorare la coda in tempo reale.

Il layer di integrazione con il mail proxy instrada i messaggi attraverso la coda, utilizzando la formula message_to_send come unico punto di controllo che decide se un messaggio viene effettivamente inviato. La nuova architettura disaccoppia la generazione delle email dalla consegna, rendendo la logica di retry e l’auditing immediati e trasparenti.

Gestore centralizzato degli errori

Un nuovo errorHandler centralizzato sostituisce la gestione degli errori frammentata pagina per pagina. Gli errori vengono diffusi via pkgBroadcast a tutte le pagine aperte, con notifiche toast non intrusive e un visualizzatore di traceback che permette agli sviluppatori di ispezionare lo stack trace Python direttamente nel browser.

REST API Dispatcher

Il nuovo dispatcher _api aggiunge routing nativo per endpoint REST API al layer web, senza necessità di un’applicazione WSGI dedicata. Un’aggiunta fondamentale per chi integra Genropy con servizi esterni o sviluppa architetture a microservizi.


Altre novità

  • ExpandBox Widget: sezioni collassabili basate su HTML5, senza JavaScript
  • Integrazione Sourcerer: adapter di servizio built-in per Sourcerer
  • Pacchetto gnr.web.widgets: ogni widget espone un metodo @element per introspezione e documentazione programmatica
  • Migrazione database: nuovo parametro -e/--extension per scegliere il formato degli script (txt, json, sql)
  • PostgreSQL: CREATE EXTENSION IF NOT EXISTS rende le migrazioni idempotenti
  • Werkzeug ProxyFix: applicato automaticamente in ambiente Kubernetes
  • K8S Generator: supporto per initContainers nei manifest Kubernetes

Pulizia e rimozioni

Questa release completa anche un’importante opera di pulizia:

  • Rimossa la libreria legacy Dojo 1.8: il framework ora utilizza esclusivamente Dojo 2.0
  • Rimossi i legacy_packages/gnr e la demo_site di esempio
  • Eliminato codice WSGI obsoleto
  • Il modulo di autenticazione è stato estratto in un modulo dedicato, migliorando la separazione delle responsabilità

Bug fix principali

  • Email: eliminati invii duplicati e race condition nel metodo sendMessage
  • S3: corretta la gestione degli ETag per upload multipart
  • CKEditor: ripristinata la distinzione visiva tra modalità disabled e readOnly
  • DateTimeTextBox: il valore non viene più cancellato al blur
  • Grid: le colonne flex ora rispettano una larghezza minima automatica
  • GroupletForm: corretta la separazione dei datapath e l’indicatore errori

Conclusioni

La 26.04.01 è una release che si vede: il nuovo sistema di temi trasforma immediatamente l’aspetto di tutte le applicazioni Genropy, portandole a un livello di modernità e coerenza visiva senza precedenti. Ma dietro il nuovo look si nascondono miglioramenti architetturali profondi — dalla coda email alle REST API native — che rendono il framework più robusto, modulare e pronto per le sfide future.

Buon lavoro con Genropy!