Nuova release luglio 2023: le novità
Oggi, con la release 2307, sono state nuovamente portate sul ramo master le ultime funzionalità sviluppate e testate sul ramo develop. Si consiglia pertanto di effettuare un git pull
del repository di Genropy per usufruire a pieno degli ultimi aggiornamenti.
Di seguito le principali novità introdotte.
Problemi? Puoi tornare in qualsiasi momento allo stato precedente spostandoti indietro di un commit sul ramo master oppure facendo il checkout del ramo
prev_master
. Ti preghiamo comunque di segnalarci problemi e anomalie su AskGenropy
Requirements
È stata aggiunta la dipendenza alla libreria jsmin
, aggiunta anche ai requirements. La libreria, che si occupa della minification del codice javascript, Nelle nuove installazioni è sufficiente eseguire il paver develop
nella cartella genropy/gnrpy e la libreria verrà automaticamente installata. Nelle installazioni già esistenti, invece, esegui il comando:
pip install jsmin
Colgroups
È stata migliorata la sintassi dei groups, i raggruppamenti di colonna, visualizzati in modo annidato nell’albero della vista sotto la stessa voce, quella del gruppo. Se prima si specificava il group come attributo di colonna:
class Table(object): def config_db(self, pkg): tbl = pkg.table('anagrafica', group_sistema='Sistema') self.sysFields(tbl) tbl.column('codice', size=':10', name_long='Codice', group='sistema')
e si definiva il name_long del gruppo direttamente come attributo della tabella, adesso il group viene gestito con una sintassi analoga a quella dei columnset:
class Table(object): def config_db(self, pkg): tbl = pkg.table('anagrafica') group = tbl.colgroup('dati', name_long='Dati') group.column('ragione_sociale') group.column('nome') group.column('cognome')
Oltre all’aspetto meramente sintattico uno dei vantaggi è che al trascinamento del titolo del gruppo in una vista, verrà direttamente generato il columnset corrispondente.
Autenticazione a 2 fattori
Genropy supporta ora l’autenticazione a due fattori, migliorando la procedura di creazione degli utenti e rendendo più sicuro il login. La configurazione è molto semplice e richiede la configurazione del service 2fa
, si rimanda di conseguenza alla documentazione dedicata
ghostTableHandler
È stato introdotto il ghostTableHandler, un particolare tipo di borderTableHandler in modalità autoSave, dove la Form è nella parte superiore e la View nella inferiore, senza toolbar della vista. La particolarità è che se lo store non contiene alcun record, al caricamento la Form sarà già in fase di inserimento di un nuovo record, se è presente un solo record sarà già in fase di modifica di quello specifico record, se ce n’è più di uno sarà possibile selezionare il record da modificare.
Menu
In ambito menu sono innanzitutto state introdotte due nuove classi definibili nel file menu.py oltre alla classe di base Menu
: la classe ApplicationMenu
, che consente di specificare le voci di menu dell’intero applicativo (se il mainpackage è anche un package con un suo menu di package), e la WebAppMenu
, che permette di specificare un menu per la sola interfaccia da mobile.
È stato inoltre introdotto il concetto di branchPage
, un booleano che permette di specificare se aprire gli elementi di un tableBranch
in una nuova scheda o meno.
Infine, la sintassi del branchMethod è stata modificata in subMenu
.
Qrscanner
È stato introdotto un component qrscanner
, che si occupa, attraverso la telecamera del dispositivo (desktop o mobile), di effettuare una scansione del codice QR e settare in un path il valore letto:
pane.qrscanner(value='^.value',height='400px') pane.div('^.value',font_size='40px') pane.iframe(src='^.value',width='100%',height='100%')
Nell’esempio mostriamo poi in un iframe l’url letta dal qrcode.
mobileFormBuilder
Il mobileFormBuilder è una versione particolare del formBuilder studiata appositamente per una migliore visualizzazione sui dispositivi mobile.
Master-Detail
Il paradigma Master-Detail, precedentemente riservato a Erpy, è stato portato in Genropy, e reso disponibile su un apposito ramo in Sandbox. Vista la vastità dell’argomento si rimanda a un futuro tutorial approfondito sul tema.
sendInvitationEmail
È stata ulteriormente automatizzata la procedura di creazione degli account. In particolare, usando la nuova funzione sendInvitationEmail
(invocata automaticamente se il nuovo user è di stato “Invited”), verrà generato un token grazie al quale l’utente che riceve la mail di invito potrà generare la sua password ed effettuare l’accesso al sistema.
Ti piacciono le novità o hai avuto problemi nell’aggiornamento? Niente paura! Contattaci sul gruppo Telegram AskGenropy e condividi con noi dubbi/domande/perplessità.