Plone e database relazionali
Un esperimento per rendere Plone più alla portata di utenti non tecnici per costruire through the web maschere per l'interrogazione a database relazionali
Oggi vediamo un esperimento che dovrebbe rendere più facile l'interazione tra Plone attraverso dei form e Database Relazionali.
Come base per iniziare con l'esperimento si può partire dalla riesumazione di un vecchio prodotto in disuso chiamato SQLDocument disponibile sul collective [https://dev.plone.org/collective/browser/SQLDocument/trunk].
Note
Naturalmente voglio sottolineare che si tratta praticamente solo di un prototipo e va preso esattamente come tale, è per questo che parlo di "esperimento"!
Per esempio il codice non era mai stato ufficialmente rilasciato, era stato pensato per la versioni ormai datate e i soli interventi che ho effettuato avevano come scopo quello di riuscire a vederlo installato su un Plone 3 e vedere come funziona. Quindi sia chiaro: ognuno lo usi a suo rischio e pericolo, non ho verificato se ci sono meccanismi per evitare delle DROP, ecc...
Tuttavia essendo codice open source nulla ci vieta di testarlo, migliorarlo o prendere spunto da soluzioni simili per costruire un prodotto testato, affidabile e che renda Plone più facile da usare e pronto da dare in mano a persone che magari conoscono solo qualche fondamento di sql senza dover imparare da zero Plone e tutto il resto.
Obiettivi
L'obiettivo dell'esperimento sarà quello di dare uno strumento facile da usare a personale mediamente tecnico per realizzare semplici maschere di interazione con un database e:
- creare di viste dinamiche per interrogare database con query qualsiasi
- realizzare delle query dinamiche grazie a dei form autogenerati
- essere integrato con PloneFormGen in veste di ThanksPage (costruisco il form come voglio e gli input vengono passati all'SQLDocument che li visualizzerà)
Le uniche competenze necessarie saranno la conoscenza base di SQL (scrivere qualche select con una condizione where).
Non sarà necessario per nulla conoscere:
- html
- templating con zpt
- sqlalchemy
- z3c.form
- ZCA
e si potrà lavorare through the web (con tutti i limiti e i vantaggi che ne conseguono).
Quindi questo approccio potrebbe aiutare se il form da realizzare non è troppo complesso e vogliamo rendere autonome delle persone senza competenze specifiche (Plone, python, z3c.form, ...); in questo modo gli utenti dovrebbero essere autonomi e non avranno a che fare con un'astronave che non sapranno mai gestire senza un aiuto esterno, anche solo per fare operazioni molto semplici.
Naturalmente In tutti gli altri casi in cui si ha bisogno di un software chiavi in mano e che abbia tra le sue caratteristiche robustezza, flessibilità... allora un qualcosa come z3c.form&co sono l'ideale.
Test sul campo
Diamo qualche informazione sul prodotto: installazione, utilizzo, ecc...
Installazione
Basta effettuare il checkout dall'svn del collective e configurare il proprio buildout, con diverse modifiche ora è stato adattato per girare su Plone3.
Opzionalmente è possibile includere Reportlab per ottenere dei pdf sulla base dei risultati visualizzati estratti dal database. C'è anche la possibilità di ottenere dei file Excel installando le opportune librerie.
Opzionalmente si può anche installare PloneFormGen per poter scrivere delle maschere di interrogazione personalizzabile e in autonomia.
Utilizzo
Basta installare il prodotto e usarlo:
- da solo (visualizza una query oppure realizza in automatico un semplice form se ci sono delle select con delle where)
- in combinazione con PloneFormGen (costruiamo in autonomia con PloneFormGen la maschera di interrogazione e abilitiamo l'SQLDocument come ThanksPage per visualizzare i risultati)
Riferimenti in rete
Ecco alcuni link in inglese che portano alla pagina principale del prodotto, dei tutorial e al codice (sono presenti esempi di configurazione e screenshot).
- http://plone.org/products/sqldocument
- http://plone.org/documentation/kb/let-sqldocument-display-your-rdbms-data
Non viene coperta dai tutorial l'integrazione con PloneFormGen, ma è piuttosto semplice
re: ParoleSante
confermo, Plone sta compiendo dei bei passi in avanti e ne vedremo delle belle :)
Parole sante
quoto in pieno la tua frase:
"in questo modo gli utenti dovrebbero essere autonomi e non avranno a che fare con un'astronave che non sapranno mai gestire senza un aiuto esterno, anche solo per fare operazioni molto semplici"
Il problema che continuo a riscontrare con Plone è propio la sensazione di dover imparare un intero sistema complesso e tecnologicamente evoluto anche per fare piccole personalizzazioni o esperimenti.
Però inizio ad essere più fiducioso vedendo le features delle nuove versioni 4 e 5, speriamo bene :):):)
p.s.
per non parlare di qualsiasi minima personalizzazione della grafica.