Ciao a tutti,
eccoci con un nuovo post della nostra sezione di ODOO tutorial. Questa volta vi spiegherò come implementare un wizard all'interno dell'ERP.
Cos'è un wizard?
Un wizard in ODOO è un modello visualizzato attraverso una dialog window. Al contrario dei modelli visti fino ad ora un wizard è dichiarato utilizzando la classe Transient Model.
La classe Transient Model estende la più nota classe Model, da cui eredita tutti i metodi.
Cosa differenzia la classe Transient Model dalla Model?
I dati di un Wizard non sono persistenti come quelli di un modello, essi vengono cancellati dopo un certo periodo di tempo.
I modelli Wizard non richiedono particolari diritti d'accesso quindi, al contrario dei Model, tutti gli utenti hanno permessi a generare dati wizard.
È importante sottolineare che da un modello non è possibile definire una relazione, attraverso un many2one per esempio, ad un modello wizard.
Per ulteriore documentazione a riguardo vi consiglio di leggere quella ufficiale di ODOO
Implementazione
Per convenzione i wizard vengono raccolti all'interno di una directory denominata wizard, abbiate cura di includere in ogni cartella il file di init per importare le classi definite nella directory e di inserire i file xml all'interno del manifest.
È stata estesa prima di tutto la classe product.template al fine di aggiungere un campo state che ne indichi la disponibilità o meno.
Nell'immagine soprastante si visualizza la definizione della vista per il nostro wizard:
- Il tag act_window definisce l'azione di visualizzazione della form definita per la classe wizard, form in cui l'utente andrà a scegliere la lista dei prodotti da rendere sold out.
- Il tag menuitem permette di inserire l'azione definita precedentemente in un menu all'interno del parent sale.product_config_main contenuto nel modulo sale
La view di un modello wizard segue le stesse logiche di una view collegata ad un modello.
All'interno della view è stato definito infine un button di tipo object che richiama attraverso il name il metodo di cambio stato dei prodotti definito nel wizard.
Interfaccia
Vediamone ora il risultato all'interno di ODOO:
Nell'immagine 5 si visualizza il wizard, dove l'utente seleziona i prodotti da modificare.
Nell'immagine 6 vediamo infine che i prodotti selezionati nel wizard sono ora in stato "Non disponibile".
L'esempio appena presentato è davvero semplice ma permette di capire quanto possano essere utili i wizard per velocizzare le operazioni di un utente all'interno di ODOO.
Il nostro post finisce qui, spero tanto che questo tutorial vi sia stato d'aiuto.
Stay tuned,
Letizia