Supporto volontario e collaborativo per Joomla!® in italiano

Albo Pretorio On Line per la Pubblica Amministrazione, una storia di Joomla

logo della repubblica italianaAlbo Pretorio On Line è un'applicazione che è nata nella comunità italiana di Joomla! per dare una risposta, con l'uso del CMS Joomla!, all'esigenza delle pubbliche amministrazioni di avere disponibile l'albo pretorio on line sul quale pubblicare i propri atti in adempimento dell'art. 32 della Legge 18 giugno 2009, n. 69, che prevedeva che dal 1 luglio 2010 gli atti soggetti a pubblicazione per avere efficacia dovevano essere pubblicati sul sito Internet degli enti. L'art. 2 della legge 25/2010 ha prorogato la data di inizio della pubblicazione obbligatoria al 1.1.2011.

Questa problematica è stata posta nella sezione Gestione Form del sito www.joomla.it della comunità italiana di Joomla. La ricerca che stavo facendo sull'uso abbinato di due componenti, Chronoforms e Chronoconnectivity della Chronoengine, mi portò a rispondere, a chi aveva posto la necessità di realizzare un'applicazione, che pensavo che con quegli strumenti si poteva risolvere il problema.

Quella dichiarazione fu un po' ottimistica, ma come i fatti hanno dimostrato era vera. C'era uno schema mentale delle cose, che sostanzialmente è rimasto solido, ma quante cose si sono presentate da allora. In quel momento non si conoscevano completamente i problemi che dovevano essere superati. Ma si doveva fare qualcosa. ("Provare no! Fare! O non fare. Non c'è provare!" Maestro Joda - Guerre Stellari)Laughing

Si è aperta una discussione con pareri, esigenze, suggerimenti una vera piccola comunità creativa. Era dicembre 2009 e da allora la discussione è stata letta oltre 20.000 volte.· E' al primo posto dei topic con maggiori risposte ricevute con circa 700 post ad oggi (dovremo pensare a qualcosa di diverso altrimenti sarà ingestibile). Nel marzo 2010 è uscita timidamente la prima versione 1.0 alpha ed oggi dopo 30 rilasci siamo alla versione 8.0 beta 5 di Albo, 2 patch dei componenti della Chronoengine, una per validazione W3C e l'altra per il potenziamento del componente Chronoconnectivity ed un modulo dedicato all'applicazione per visualizzare gli ultimi atti pubblicati. Al Joomladay 2010 è stata presentata l'applicazione che per l'occasione aveva una versione dedicata alla manifestazione.

atti in corso di pubblicazione

Da una semplice ricerca con Google risulta che 54 amministrazioni italiane usano in nostro Albo. Fra cui comuni, tanti piccolissimi e con difficoltà economiche, unioni di comuni, comunità montane, scuole, associazioni, l' ASL 14 del Veneto, una agenzia della Regione Abruzzo e l'Autorità Portuale di Cagliari. Qui i link all'elenco nel forum di joomla.it e alla goolge map nel sito demo.

Si può dire un successo, che trova la forza proprio nelle modalità con cui è nato. Il CMS Joomla! e le sue estensioni che sono il motore di tutto e la sua comunità operosa che partecipa costantemente alla crescita ed allo sviluppo delle sue estensioni. Due risorse che vanno di pari passo ed in simbiosi. Senza uno non c'è l'altro e viceversa.

Descrivere i 400 Kb di codice non è impresa che può essere realizzata in questa sede, ma può essere utile forse parlare dei principali problemi trovati e risolti, perchè ciò può essere utile anche ad altri, che magari con gli stessi metodi o addirittura innovandoli possono realizzare altre applicazioni utili alla comunità.

Una premessa preliminare, Albo Pretorio On Line non è una classica estensione di Joomla. Albo Pretorio è un sistema che mette il relazione fra loro i prodotti realizzati dai componenti della Chronoengine. I prodotti realizzati dai componenti sono i forms e le connessioni alle tabelle del database, in cui i forms registrano i loro campi. Il dialogo controllato realizzato fra forms e connessioni da vita all'applicazione Albo Pretorio.

Alcune informazioni di ordine generale. Allo stato attuale l'applicazione utilizza 19 forms di Chronoforms e 11 connessioni di Chronoconnectivity2 (la versione modificata multi tabella), 7 le tabelle utilizzate, escluse quelle che contengono i forms e le connessioni.

 

I Forms Le Connessioni Le tabelle
  1. allegati_10
  2. allegati_10_conferma
  3. allegati_10_modifica
  4. atto_10
  5. atto_10_modifiche
  6. atto_10_mostra
  7. atto_10_notifica
  8. categoria_10
  9. categoria_10_modifica
  10. configurazione
  11. enti
  12. enti_modifica
  13. finestra_avvio
  14. madre_atto_10
  15. sezione_10
  16. sezione_10_modifica
  17. utente_non_autorizzato
  18. utenti
  19. utenti_modifica
  1. albo_pretorio
  2. albo_storico_accessibili
  3. albo_tutti
  4. atti_allegati_modifica
  5. ricerca_admin
  6. ricerca_albo_pretorio
  7. ricerca_archivio_accessibili
  8. sezioni
  9. sezioni_categorie
  10. sezioni_categorie_modifica
  11. sezioni_modifica
  1. #__chronoforms_allegati_10
  2. #__chronoforms_atto_10
  3. #__chronoforms_categoria_10
  4. #__chronoforms_configurazione
  5. #__chronoforms_enti
  6. #__chronoforms_sezione_10
  7. #__chronoforms_utenti

Il primo problema superato è stato proprio quello di modificare la normale versione di Chronoconnectivity,  che gestisce una sola tabella nella query  per interrogare il database. La versione modificata, alla fine in modo abbastanza semplice grazie alla qualità del codice originario, consente di gestire query su più tabelle e quindi ha dato maggiori possibilità e potenza alla realizzazione del lavoro.

Qui c'è il link alla versione modificata di Chronoconnectivity2 ed alle descrizioni delle variazioni apportate http://www.joomla.it/download-della-community/item/40-chronoconnectivity-multitabelle.htm

Un secondo problema di ordine generale era quello di produrre codice validato W3C, base di partenza per l'accessibilità dei siti delle PP.AA.. Anche questo è stato risolto realizzando una pacht che contiene i file da sostituire nei pacchetti originari di Chronoforms e Chronoconnectivity2 per avere codice prodotto con la validazione W3C. Questo è il link alla pacht con la descrizione delle modifiche http://www.joomla.it/download-della-community/item/110-patch-validazione-w3c-componenti-chronoengine.html

Il pacchetto completo ed installabile di Albo Pretorio On Line è disponibile nella sezione download di Jooma.it.

Le funzioni che compie l'applicazione possono essere comprese in queste descrizioni:

Inserimento dati, modifica dati, cancellazione dati, visualizzazione dati, visualizzazione elenchi dei dati, ricerca dati, inserimento allegati, visualizzazione allegati, invio email con allegati, stampa pagine visualizzate.

Ovviamente qui i dati sono tutti finalizzati a descrivere gli atti amministrativi che devono essere pubblicati e gli allegati in vari formati sono i veri documenti costituenti gli atti che saranno visualizzati dal pubblico con varie modalità. I formati gestiti nella configurazione di default sono i seguenti: doc, pdf, rtf, txt, png, jpg.

Finestra mostra atto

Avendo stabilito di usare come strumenti i componenti della Chronoengine, che lavorano su forms, elenchi di dati e tabelle di database, si è dovuto pensare ad un uso dei forms che andasse oltre il semplice inserimento di dati e del loro invio ad una tabella del database. In questa applicazione il form deve essere pensato come un contenitore, in cui può stare qualsiasi cosa, in alcuni casi c'è tutto tranne gli elementi fondamentali di un form, campi e bottoni. Per esempio ci sono immagini, testi informativi, link ad altri form e connessioni oppure codici in linguaggio php,  css o javascript, che controllano e decidono cosa e come deve essere mostrato nel form o come esso deve reagire a determinati eventi. Questo è uno dei punti di forza che ha consentito di superare i problemi. Infatti tutte le finestre che sono mostrate dall'applicazione, escluso qualche elenco, sono dei forms, che a volte si presentano apparentemente come normali contenuti di Joomla.

I 19 forms dialogano fra loro scambiandosi dati (variabili, array), i quali determinano il modo in cui il form ricevente risponde o si presenta graficamente per gestire nel modo appropriato i dati. La stessa cosa fanno le 11 connessioni, che visualizzano ciascuna liste sintetiche degli atti e consentono le ricerche e la navigazione fra gli atti e permettono di raggiungere i form per vedere o elaborare di dati. Le  3 connessioni dedicate alle ricerche contengono esse stesse dei forms.

I principali problemi di risolti per far funzionare le cose nel modo giusto sopra sintetizzato sono i seguenti:

Implementazione di due caselle dropdown dinamiche, di cui la seconda con dati mostrati in funzione di quelli scelti nella prima casella. Questo è stato necessario per gestire la classificazione degli atti divisi in sezioni e categorie, che però non hanno riferimento a quelle di joomla, in cui le seconde appunto appartengono alle prime. Questa soluzione, di cui è stato dato conto anche nel forum, è stata realizzata con l'uso misto di javascript e di php.

Le ricerche degli atti negli elenchi sono funzioni che hanno richiesto un certo impegno.Il problema era che le query delle ricerche potevano produrre più pagine di risultati e nel passaggio da una pagina all'altra era necessario conservare i risultati delle ricerca iniziale. Le soluzioni sono giunte utilizzando la gestione delle sessioni di Joomla che ha consentito di memorizzare dati funzionali alla navigazione fra le pagine prodotte dalle ricerche e di visualizzare i totali dei dati trovati insieme alle chiavi di ricerca.

ricerca atti

Altra funzione importante inserita è quella che consente l'ordinamento ascendente e discendente delle colonne dei campi negli elenchi degli atti. Anche qui javascript e php hanno fatto la loro parte integrandosi in modo ottimale.

La stampa di parti delle pagine visualizzate è un'altra funzione ottenuta con l'uso di javascript sia all'interno degli elenchi che dei forms.

E' stata pensata una gestione dei permessi degli utenti , una specie di ACL di Albo Pretorio, che opera sia sulle funzioni dell'applicazione che sulle categorie degli atti. Questo consente di assegnare a ciascun operatore delle specifiche funzioni di Albo, ma anche di limitare o meno la sua attività ad atti appartenenti a determinate categorie.

L'uso dei plugin di chronoform. Due in modo particolare. Il Multi Page con il quale sono gestiti i 3 form, oltre al form madre, che consentono la procedura di inserimento degli atti e degli allegati. Il Profile Page che consente di richiamare i singoli atti dai risultati degli elenchi e delle ricerche, in visione, in modifica, cancellazione o nella finestra di notifica.

Quest'ultima funzione di notifica ha richiesto, per le sue necessità, lo sviluppo di una modalità di invio per email dei dati degli atti, con gli allegati, che ha sfruttato completamente il sistema delle API di joomla dedicate all'invio delle email. Ne è risultato un sistema potente che non ha alcun limite nelle possibilità di invio che potrebbero essere richieste in futuro.

E' stata posta cura per assicurare uno scambio di valori fra le pagine dell'applicazione in modo sicuro usando le API di joomla dedicate a questo compito (JRequest::getVar() e JRequest::setVar() ).

Sono stati usati quasi tutti gli elementi di configurazione dei forms previsti da Chronoforms, fra questi i campi che consentono di seguire il flusso dei dati durante l'uso del form, cito come esempio la finestra Validation che consente di analizzare i valori dei campi passati dal form prima del loro invio definitivo al sistema. Questa è una vera risorsa che consente il controllo dei dati, la loro modifica e l'avvio di azioni specifiche in funzione appunto dei valori rilevati.

La finestra_avvio è il punto di partenza, di transito e ritorno delle attività. E' anch'essa uno di quei form particolari senza tasti e campi ed ha come compito quello di chiamare gli altri  forms e le connessioni, predisponendo le variabili di sessione necessarie per passare alle altre finestre il controllo dell'applicazione.

La procedura di installazione di Albo Pretorio è stata fondamentale, senza di essa Albo non sarebbe stato distribuibile con semplicità. La procedura, da eseguire dopo l'installazione dei componenti della Chronoengine e l'applicazione delle pacht citate sopra, popola automaticamente le tabelle di database che contengono i dati e il codice dei forms e delle connessioni. All'utente si presenta come una normale procedura di installazione di un componente di Joomla.

Albo Pretorio On Line è gestibile interamente dal Frontend di Joomla!, da due aree specifiche. La prima pubblica accessibile a tutti i visitatori del sito, la seconda riservata accessibile agli utenti autorizzati alla gestione degli atti.

L'area pubblica è accessibile dalla voce di menù predisposta seguendo le istruzioni di installazione di Albo, che condurrà alla finestra_avvio che si presenterà così.

area_pubblica

Accedendo invece, tramite il login del frontend del sito, come utente di joomla di qualsiasi tipo, da Register ad Administrator, si accede all'area riservata e la finestra di avvio presenterà tutte le funzioni di gestione in questo modo.Da li sarà possibile accedere alle varie attività.

area_riservata

Un dettagliato manuale utente, frutto anch'esso del lavoro comunitario, disponibile on line nella finestra configurazione e anche nella sezione download di joomla.it, illustra tutte le modalità di configurazione e di funzionamento.

Sono presenti alcuni obblighi di uso che per alcuni sono "limitazioni". Il primo deriva dall'utilizzo dei componenti della Chronoengine nella versione free. Tale versione non ha limiti di funzionalità ma mostrerà nella parte bassa dei forms e degli elenchi i link al sito della Chronoengine. Tale apparente "limitazione" potrà essere rimossa registrando i componenti della Chronoengine.

L'altra "limitazione", che ha richiesto un po' di discussione nel forum, è proprio contenuta nella logica funzionale di Albo Pretorio. Albo Pretorio consente di compiere qualsiasi operazione di modifica o cancellazione di ogni atto, prima, che esso sia reso visibile al pubblico, giuridicamente e tecnicamente si dice pubblicato.
Appena pubblicato  sul sito l'atto produce effetti giuridici per tutti i soggetti a cui è rivolto. Come per il vecchio albo murale e cartaceo, per rimediare l'errore dell'atto già pubblicato, l'amministrazione deve produrre un nuovo atto che giuridicamente annulla o rettifica il precedente, producendo effetti giuridici dalla data di pubblicazione del nuovo atto.
Esempio: un atto contiene una data di scadenza sbagliata per la presentazione di una domanda di concorso o di un offerta per una gara di appalto. Chi avesse letto l'atto subito dopo la pubblicazione non sarebbe informato di una eventuale successiva modifica apportata nello stesso atto alla data di scadenza. Invece con la pubblicazione di un nuovo atto di annullamento e/o rettifica del precedente con la nuova data di di scadenza si garantisce la giusta informazione ed il rispetto delle regole.

Alcune considerazioni finali. Questa applicazione è nata e vive grazie alla comunità di Joomla, che frequenta il forum, e con la sua partecipazione attiva ha guidato questo sviluppo, ha suggerito funzioni, ha collaudato le soluzioni, a scritto il manuale. Una parte di essi sono dipendenti di pubbliche amministrazioni, che giornalmente pongono domande, testano l'applicazione e crescono nelle loro conoscenze attraverso Albo ed Joomla, personalizzano Albo alle loro necessità ed esigenze. Altri sono fornitori di servizi agli enti ed anche loro hanno contribuito nello stesso modo a questa esperienza. A tutti loro va un grande ringraziamento per il contributo che hanno dato. Questa è una risorsa di persone, di tante storie ed esperienze che non devono andare disperse dopo che Albo avrà raggiunto una sua maturità e non necessiterà più, come ora di una cura quasi quotidiana.

La pubblica amministrazione ha necessità di tanti applicativi in tutti i settori e questa bella esperienza Open Source di Albo Pretorio On Line può essere applicata ad altre estensioni, realizzate magari con i metodi classici di Joomla. La proposta che viene dunque naturale è quella di creare un punto di referimento di Joomla dedicato alla Pubblica Amministrazione.

Una sezione del forum di joomla.it dedicata espressamente alla PA, dove si possano mettere il rete le esperienze, manifestare le esigenze, produrre e contribuire a progetti di estensioni specifiche dedicate alle mille attività che necessitano giornalmente alle PP.AA. Oltre 8.000 comuni, 100 province, 56.000 scuole di tutti i tipi e tanti altri altri enti. In ognuna di queste amministrazioni ritengo ci sia almeno una persona, ma sono sicuramente tante di più, che pensano a migliorare il loro lavoro ed attraverso esso a migliorare la loro amministrazione. Una vera potenza positiva che potrebbe portare davvero a trasformazioni impensabili.

Questo inoltre contribuirebbe a diffondere Joomla fra tante persone e sarebbe senz'altro una cosa positiva, anche per le aziende che assistono la P.A. nei processi di informatizzazione, che potrebbero avere la disponibilità dei prodotti frutto di questo impegno e quindi anche un contributo all'economia di questo paese.



16.11.2010 Valerio Sichi (vales)

 


Link alla nuova sezione del forum dedicata alla Pubblica Amministrazione


Link alla nuova sezione del forum di joomla.it dedicata ad Albo Pretorio On Line per Joomla

CommentaCommenta questo articolo sul forum