Hi,
1. You can open a wizard by adding the below code inside the function of button click .
For example here the function is action_open_wizard.
def action_open_wizard(self):
return {
'name': "Test Wizard",
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'test.wizard',
'view_id': self.env.ref('test_module.test_wizard_view').id,
'target': 'new',
}
2. To create a wizard first create a new transient model and add necessary fields to it. Then create a view for the wizard.
For example here I am given the python code and xml code for the above:
class GenTestWizard(models.TransientModel):
_name = "test.wizard"
_description = 'Testing of wizard'
msg = fields.Text(string="Test message", default="Do you want to continue?",readonly=True)
def yes(self):
print("yes")
def no(self):
print("no")
in .xml
<record id="test_wizard_view" model="ir.ui.view">
<field name="name">Test wuzard</field>
<field name="model">test.wizard</field>
<field name="arch" type="xml">
<form string="Warning">
<group>
<field name="msg" nolabel="1"/>
</group>
<footer>
<button name="yes" string="Ok" type="object" class="oe_highlight"/>
<button name="no" string="Cancel" type="object" class="oe_highlight"/>
</footer>
</form>
</field>
</record>
<record id="test_wizard_action" model="ir.actions.act_window">
<field name="name">Test Wizard</field>
<field name="res_model">test.wizard</field>
<field name="view_id" ref="test_wizard_view"/>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
To know more about wizard creation, you can refer to the below mentioned blogs.
1. https://www.cybrosys.com/blog/how-to-create-manage-wizard-in-the-odoo-15
2. https://www.cybrosys.com/blog/how-to-create-wizard-in-odoo-13
Hope it helps