Blog

Genropy update announcement: nuovi menu

Genropy update announcement: nuovi menu

Siamo lieti di annunciare fantastiche novità in arrivo per gli utilizzatori di Genropy, riguardanti i menu degli applicativi. Il menu di un applicativo Genropy, che abbiamo conosciuto già nello svolgimento del Tutorial di Fatturazione, è da sempre piuttosto statico: in un file menu.py si specificavano infatti le thpage, le webpage, le cartelle e si raccoglievano in un’unica voce le tabelle di lookup.

Il funzionamento dei menu, al fine di essere più in linea con la dinamicità tipica di Genropy e alla luce anche di una serie di miglioramenti alla versione mobile attualmente in fase di sviluppo, è stato totalmente rivisto per rendere questi strumenti più dinamici, più personalizzabili, più facilmente differenziabili per dispositivo o gruppo di utenza.

Considerata la portata delle novità, abbiamo organizzato una breve serata di approfondimento per salutarci e guardare insieme le ultime novità. Per chi non avesse potuto partecipare alla serata, ecco il video dell’incontro che si è tenuto lunedì 7 marzo alle 21 su Zoom:

Di seguito le principali novità riguardanti i menu.

I menu di Genropy: cosa cambierà

I menu di Genropy fino a oggi…… e i menu a partire da domani
– possibilità di specificarli nell’instanceconfig, nei vari pkg, in un file menu.py nella cartella dell’istanza– un menu di applicazione definito nel pkg primario (“main package“)
– chiamata di funzione (“def config“)– sono una Structure di Genropy, e vengono definiti nella classe “Menu”
– definiti all’avvio del processo, nessun dato sull’utente corrente e altre informazioni– mettono a disposizione self.page e self.db, con conseguente possibilità di fare query, accedere a db e pagina, personalizzare per singolo utente
– statici– contenuti dinamici (es: tableBranch) e tabelle di lookup visibili nel menu

Anche la sintassi, oltre a includere il concetto di classe, varierà al fine di essere più chiara e uniforme:

class Menu(object):
   def config(self,root):
      fatturazione = root.branch("Fatturazione")
      fatturazione.thpage("Fatture", table="fatt.fattura")
      fatturazione.lookupBranch("Tabelle Ausiliarie", pkg="fatt")
      fatturazione.webpage("Hello world", filepath="/sandbox/hello_world")
      fatturazione.packageBranch('Gestione utenti', pkg='adm', branchMethod='userSubmenu')

Come si può notare, ogni qualvolta verrà utilizzato il termine “branch” verrà creato un ramo del menu.

Le novità più importanti riguarderanno le tabelle di lookup, e l’introduzione dei tableBranch. Vediamo quindi una per una le novità.

Nuova feature: lookupBranch

Oltre alle modifiche sintattiche (lookupBranch al posto di lookups e l’attributo pkg invece di lookup_manager), il funzionamento stesso delle tabelle di lookup è stato rivisto al fine di migliorare la user experience. Le tabelle di lookup saranno infatti ora visibili direttamente nel menu, e quindi ricercabili dall’apposito box. Inoltre, condivideranno tra loro la stessa pagina, e sarà possibile switchare tra una tabella e l’altra tramite apposito selettore.

Nuova feature: i tableBranch

L’altra grande novità riguarda i tableBranch, ovvero dei rami di record di una tabella costruiti in modo estremamente dinamico, individuando i record tramite i parametri di una query di ricerca.

La sintassi del tableBranch è la seguente:

fatturazione.tableBranch('Ultime fatture, table='fatt.fattura',
                          query_limit=5, query_order_by='$protocollo desc')

Il risultato del branch così descritto è l’elenco delle ultime 5 fatture ordinate per data. Si noti che i record selezionabili dal menu saranno infatti diversi a seconda delle condizioni specificate nella ricerca e dei cambiamenti che avvengono sui record stessi.

Esattamente come avviene nel caso delle tabelle di lookup, anche in questo caso i record, oltre a essere raccolti sotto un unico branch, condivideranno la stessa pagina e ci si potrà muovere tra loro tramite apposito selettore.

Gli ambiti di applicazione di questa nuova funzionalità sono evidentemente molteplici: ultime fatture, clienti da contattare, cose da fare, documenti da confermare, prodotti da consegnare, ordini da evadere, il limite è solo la fantasia…


Queste sono alcune delle molteplici novità in ambito menu. Invitiamo gli sviluppatori a consultare il booklet dedicato, provvisorio ma esaustivo, che verrà poi inglobato in un manuale più ampio. Sono inoltre disponibili per il download le slide utilizzate durante la serata.


Come “convertirsi” ai nuovi menu

Premessa la totale retrocompatibilità con i sistemi precedenti, si consiglia comunque un rapido passaggio all’utilizzo dei nuovi menu.

I nuovi menu sono al momento disponibili sul branch develop di Genropy, come annunciato nel nostro articolo sulla modifica ai nomi dei branch, e verranno presto adottati anche sul branch principale.

Per agevolare la conversione dei menu precedenti abbiamo messo a disposizione una procedura appositamente dedicata, accessibile dalle Preferenze, nel tab *Developer*. Sarà sufficiente attivare l’opzione Autoconvert Legacy menu, salvare, riavviare il server e ricaricare la pagina per convertire tutti i menu di un applicativo utilizzando le nuove sintassi.

Per segnalazioni o chiarimenti, è come sempre possibile commentare questo articolo o scriverci su AskGenropy.