.. _tutorial_fatturazione/create_project: 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). .. raw:: html
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*. .. image:: /_static/images/directories.jpg :align: center :height: 200px 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. :: .. 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 :ref:`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 Credenziali 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``. :: 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. .. raw:: html
Possiamo infine fare qualche query sulle tabelle geografiche che risultano a questo punto popolate, accedendo ad esse dal menu di navigazione. .. raw:: html
**Allegati:** - `instanceconfig `_