Tutorial: come creare un wizard in Odoo 12

Odoo

Leonardo Cavalieri
Sono Leonardo e faccio parte del Team ODOO, in questo tutorial vi spiegherò come creare un wizard e come richiarmarlo attraverso un button.
Aggiungere il button
Il primo passo è creare il button stesso. All’interno di un file .xml nella directory views, create un record che eredita la vista in cui volete aggiungere il button e inseritelo tramite xpath.
Se avete creato un nuovo file, ricordatevi di aggiungere il suo path nel manifest del vostro modulo (questo vale per ogni file di tipo .xml che aggiungeremo).
Odoo • Testo e immagine
Creato il button è necessario associargli un metodo all’interno del modello relativo alla vista (in questo caso mrp.workorder).
Odoo • Testo e immagine
In questo modo stiamo aprendo la vista di tipo form (‘view_mode’ e ‘view_type’) indicata nel campo ‘views’ (al quale passiamo l'ID della vista) in una nuova dialog (‘target’: ‘new’), e userà dati dal modello ‘res_model’.

Creazione del wizard
Modello
Per convenzione, i wizard vengono raccolti in una directory chiamata wizard. Se non presente all’interno del vostro modulo, createla ed aggiungete al suo interno il file di init.
Create all’interno della cartella wizard un file di tipo .py che conterrà la logica del vostro wizard. Gli wizard utilizzano classe TransientModel:
Odoo • Testo e immagine
Vista
Aggiungete il file .xml per la vista relativa allo wizard:
Odoo • Testo e immagine
Il risultato sarà il seguente:
Odoo • Testo e immagine
Odoo • Testo e immagine
Passare dati dalla vista padre
È possibile far arrivare al nostro wizard dei valori contenuti nel modello della vista padre modificando il metodo collegato al button che chiama il wizard.
Odoo • Testo e immagine
Il campo src_model indica da quale model verranno presi i campi (in questo caso quello della vista padre).
Per accedere ai campi della vista padre nel wizard è sufficiente accedere al campo self._context.get(‘active_id’) per ottenere l'ID dell’oggetto relativo alla vista padre:
Odoo • Testo e immagine
Odoo • Testo e immagine
 Il risultato sarà il quello indicato nella figura sotto:
Odoo • Testo e immagine
A questo punto potete accedere ad ogni campo visibile dalla vista padre passando tramite il campo workorder_id.

Aggiungere un button senza che chiuda lo wizard
Di default, un button chiude lo wizard aperto e vi riporta alla vista padre. Per ovviare a questo problema, possiamo riaprire la vista del wizard nel metodo chiamato dal button, facendo attenzione a passare tutti i parametri che non vogliamo perdere:
Odoo • Testo e immagine
Odoo • Testo e immagine
Quindi da questo:


Odoo • Testo e immagine
Dopo aver premuto il pulsante avremo questo:
Odoo • Testo e immagine
Il tutorial finisce qua, spero vi sia stato d'aiuto.
Se anche tu cerchi supporto tecnico o funzionale, semplicemente dei chiarimenti a riguardo oppure vorresti scoprire il mondo di ODOO per proporlo  alla tua azienda non esitare a contattarci.

Stay tuned,
Leonardo

Odoo • Immagine e testo

Leonardo Cavalieri

- Jr. Odoo Developer -