Lezione 1: Creazione del progetto

In questa prima lezione vedremo com creare un project , instance e package con una sola linea di comando.

Esamineremo com'è strutturato il file di configurazione dell'istanza generata.

Vedremo come avviare il webserver della nostra applicazione. Ed infine avvieremo l'importazione automatica dei dati geografici (regioni, province, comuni).

Creazione del progetto

Prima di tutto occorre usare da terminale il comando gnrmkproject per creare un nuovo progetto, nella locazione definita nel vostro ambiente per i progetti custom. Di default questa coincide con la directory genropy_projects.

>>> gnrmkproject custom.fatturazione -i myfatturazione -P fatt -A "gnrcore:sys,gnrcore:adm,gnr_it:glbl"

Il nome del progetto è fatturazione. Con l'opzione -i possiamo creare direttamente un'istanza del progetto fornendone il nome identificativo, in questo caso myfatturazione.

Con l'opzione -P possiamo fare creare allo script il package principale del progetto dandone il nome identificativo fatt.

Includiamo inoltre i packages built-in di Genropy sys, adm, glbl.

Il risultato di questo script è la creazione del progetto fatturazione, dell'istanza myfatturazione e del package fatt.

_images/directories.jpg

Configurazione istanza

Una volta creato il progetto si può esaminare la configurazione di istanza. In Genropy è possibile avere contemporaneamente anche diverse istanze della stessa applicazione, ad esempio una per lo sviluppo e una per la produzione. Tipicamente ogni istanza si collega ad un diverso database.

Nel file instanceconfig.xml si configurano le caratteristiche dell'istanza:

  • il nome e l'implementazione del database dell'applicazione
  • l'elenco dei package usati dall'applicazione
  • altre eventuali configurazioni.

Ecco come si presenterà il file.

<?xml version="1.0" ?>
  <GenRoBag>
        <db dbname="myfatturazione"/>

        <packages>
              <gnrcore_sys pkgcode="gnrcore:sys"/>
              <gnrcore_adm pkgcode="gnrcore:adm"/>
              <gnr_it_glbl pkgcode="gnr_it:glbl"/>
              <fatt pkgcode="fatt"/>
        </packages>

        <authentication pkg="gnrcore:sys">
              <py_auth defaultTags="user" method="authenticate" pkg="adm"/>
        </authentication>
  </GenRoBag>

Hint

Approfondimento sul database:

Seguendo queste istruzioni l'applicativo myfatturazione avrà un database sqlite, in quanto né il file di configurazione di default .gnr/instance_config/default.xml, né nel file di configurazione dell'applicazione myfatturazione viene indicato l'attributo implementation nel tag db. In mancanza di tale indicazione Genropy considera sqlite come implementazione di default .

Se desiderate che i vostri futuri progetti, di default abbiano altre implementazioni SQL, ad esempio postgresql, dovrete modificare il file .gnr/instance_config/default.xml aggiungendo tag db con l'attributo implementation="postgres" e tutti gli altri attributi necessari alla connessione con il database

  • host
  • password
  • user
  • port
  • extensions

Questa configurazione, così come tutte le altre sono poi ridefinibili nel file instanceconfig.xml presente in ciascuna istanza di applicazione. Qui potete trovare dettagli sulle configurazioni per i database

Allineamento struttura database

Una volta creato il progetto è necessario apportare alla struttura del database tutti i cambiamenti necessari. Questo viene fatto dal comando gnrdbsetup seguito dal nome dell'istanza.

>>> gnrdbsetup myfatturazione

Nel caso di implementazione di database sqlite questa istruzione va a generare i file opportuni al path myfatturazione/data.

Avvio di gnrdaemon

Per funzionare il server genropy ha bisogno di un daemon che gestisca lo store server ottimizzando gli accessi. Diamo quindi il comando gnrdaemon per avviarlo su una console che non useremo più e resterà sempre viva in background.

>>> gnrdaemon

Credeziali di accesso

Per ogni applicativo che andremo a creare, compreso questo, abbiamo delle credenziali d'accesso di default definite nel file .gnr/instance_config/default.xml. Queste sono state generate dallo script di inizializzazione di Genropy.

Tuttavia per semplicità possiamo ridefinire le credenziali di accesso alla nostra istanza myfatturazione, modificando nel seguente modo il file instanceconfig.xml.

<authentication pkg="gnrcore:sys">
              <py_auth defaultTags="user" method="authenticate" pkg="adm"/>
              <xml_auth defaultTags="user,xml">
              <admin pwd="testpwd" tags="_DEV_,admin,user"/>
              </xml_auth>
</authentication>

Avvio server di test

Adesso si usa il comando gnrwsgiserve seguito dal nome dell'istanza per mettere in esecuzione un server di test. Il server di test si riavvia automaticamente ad ogni cambio di codice e quindi per la maggior parte delle modifiche non sarà necessario procedere ad un riavvio manuale.

>>> gnrwsgiserve myfatturazione

A questo punto è possibile collegarsi con il browser all'indirizzo locale indicato ed autenticarsi con le credenziali

  • utente: admin
  • password: testpwd

Popoliamo i dati geografici

Al fine di poter utilizzare la nostra futura applicazione di fatturazione occorre precaricare le tabelle geografiche relative a comuni, regioni e province italiane.

Usando però il bottone in basso a destra preferenze (nella nostra applicazione), possiamo accedere alle preferenze del package glbl ed usare il bottone che provvede a popolare queste tabelle geografiche.

Possiamo infine fare qualche query sulle tabelle geografiche che risultano a questo punto popolate, accedendo ad esse dal menu di navigazione.

Attachments: