Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2446 Lượt xem

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.


Ảnh đại diện
Huỷ bỏ

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?

Tác giả

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

Tác giả

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',

}

Tác giả

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)