Skip to Content
Menu
This question has been flagged
2217 Views

Hello,

I would like to create a wizard with steps, which can merge my 3 views. Can you give me an example to realise that in Odoo 10 ?

Thank you.


Avatar
Discard

I have recently created a wizard with steps. It can be quite ugly, especially if you need to pass data around.

Could you elaborate in more detail what you intend to do?

Author

Hi bro,

I have 3 form view, and i want to make relation between them.

when the user click in form 1 , then he click in next and he find form 2 , then next form 3

You can open a new wizard from a python function (that could be bound to a button press) by returning a dictionary:

return {

'name': _('Your window title'),

'type': 'ir.actions.act_window',

'view_type': 'form',

'view_mode': 'form',

'res_model': 'MODEL_NAME_OF_THE_NEXT_STEP',

'view_id': self.env.ref('VIEW_YOU_WANT_TO_USE').id,

'target': 'new',

'nodestroy': True,

}

In case you want to share data between the steps, you can create the new wizard before the return via:

next_step = self.env['WIZARD_NEXT_STEP'].create({

'param1': value1,

'param2': value2

})

and pass its id in the returned dictionary by adding the key:

'res_id': next_step.id

Author

Thank you so much Dan. I have question about the second step,

next_step = self.env['WIZARD_NEXT_STEP'].......

what i should do in "WIZARD_NEXT_STEP " ?

Where i should put 'res_id' ?

WIZARD_NEXT_STEP is the name of the wizard that should be launched when you click the next step button. And 'res_id' should be put into the dictionary that is retuned by the python function that is executed when you click the next step button. In a nutshell:

@api.multi

def next_step_action(self):

# your logic here:

next_step = self.env['WIZARD_NEXT_STEP'].create(# parameters here

)

return {

'name': _('Your window title'),

'type': 'ir.actions.act_window',

'view_type': 'form',

'view_mode': 'form',

'res_model': 'MODEL_NAME_OF_THE_NEXT_STEP',

'res_id': next_step.id,

'view_id': self.env.ref('VIEW_YOU_WANT_TO_USE').id,

'target': 'new',

}

Author

What i should do in the xml file ? how ii can use this wizard in my xml ?

You have to define a view record for each wizard step (if they should look different) and add a button into the view via:

<button name="next_step_action" type="object"

string="Next step" class="oe_highlight"/>

which will launch the next_step_action() function of the current wizard.

To make the wizard accessible from the outside, you'll also have to include a launch option somewhere (e.g. in the side menu or in some other view)