Tutorial: come creare un wizard in Odoo 12
In questo tutorial vi spiegheremo 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).
Creato il button è necessario associargli un metodo all’interno del modello relativo alla vista (in questo caso mrp.workorder).
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:
Vista
Aggiungete il file .xml per la vista relativa allo wizard:

 Il risultato sarà il seguente:
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.
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:

 Il risultato sarà il quello indicato nella figura sotto:
 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:
Quindi da questo:
Dopo aver premuto il pulsante avremo questo:


Condividi 

Se anche tu vuoi iniziare ad utilizzare Odoo oppure cerchi un valido supporto...contattaci!

Stay tuned!
in Blog
10 Errori che uno sviluppatore non dovrebbe fare in ODOO