콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
8608 화면

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?

아바타
취소
베스트 답변

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

아바타
취소
관련 게시물 답글 화면 활동
0
12월 24
1410
4
3월 19
9822
3
12월 23
20079
2
5월 16
13353
2
3월 15
4536