Skip to Content
Menu
This question has been flagged
2 Replies
8255 Views

Hello,

I have a button in the crm form view. When I click this button I want to open a wizard with 2 buttons: YES or NO.

When the user click yes button the yes() function is executed, if the user click no button the no() function is executed.

How to do that?

Avatar
Discard
Best Answer

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

Avatar
Discard
Related Posts Replies Views Activity
0
Dec 24
1144
4
Mar 19
9570
3
Dec 23
19835
2
May 16
13139
2
Mar 15
4321