Prove SQLAlchemy, Gazpacho e Kiwi
La ricerca di software libero per generare interfacce per la gestione dei dati aziendali si arricchisce di strumenti sempre più raffinati. Ora è la volta del costruttore di maschere Gazpacho con gli oggetti Kiwi e delle funzionalità di accesso e di gestione del database PostgreSQL di SQLAlchemy.
La generazione di interfacce gestionali è il primo passo successivo alla relazione finale del progetto PlanPlone nel quale avevamo sviluppato un sofisticato database PostgrSQL per la contabilità analitica e la programmazione quotidiana dei lavori.
Attualmente gran parte dell'inserimento dei dati avviene ancora in ambiente windows e alimenta un database paradox. Un importer realizzato in python da lele importa quei dati nel database postgres dove possiamo elaborarli. Accedendo con la libreria reportlab generiamo i report mensili per l'ufficio paghe e con pychart generiamo grafici periodici.
Abbiamo fatto alcuni tentativi con strumenti come rakun, rekall e simili ma non ci hanno dato piena soddisfazione.
Ora riproviamo con Gazpacho, Kiwi e SQLAlchemy e i primi risultati sono ottimi. Abbiamo realizzato una prima maschera che ci consente di inserire e modificare le annotazioni, le variazioni ai dati calcolati automaticamente e le comunicazioni di indennità mensili dei report per l'ufficio paghe.
Gazpacho consente di costruire l'interfaccia in modo grafico inserendo oggetti: contenitori, pulsanti di tutti i tipi, campi di visualizzazione e/o inserimento, immagini e quant'altro serve per generare anche le maschere più complesse. Per ciascun oggetto è accessibile un configuratore con tutte le opzioni necessarie al completo controllo grafico e del namespace dell'oggetto stesso. Il risultato è un file XML con estensione .glade che descrive l'interfaccia (vedi Glade). Gazpacho usa gli oggetti Kiwi che possono facilmente accedere e visualizzare dati (p. es. di un database).
SQLAlchemy è il 'ponte' che consente di accedere ai dati di un database, trasformarli in istanze python, utilizzarli con tutte le potenzialità di quel linguaggio e alimentare infine gli oggetti dell'interfaccia.
