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

Hello, I am just want to ask how can I run a function on a Yes or No button of a transient model/wizard in odoo 10? Thank very much in advance.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi, you can follow following link for this:

https://youtu.be/oMnHpHH54QU

Hope it helps,

Thanks

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

Let's consider that you have a wizard 'abc.abc' and you have two buttons 'Yes' and 'No'.
Define the form view for the wizard.

To return a wizard in odoo 10,use the following syntax.

view_id = self.env.ref('module_name.view')
return {
'name': _('Abc'),
'res_model': 'abc.abc',
'context': {
},
'type': 'ir.actions.act_window',
'view_id': False,
'views': [(view_id.id, 'form')],
'view_mode': 'form',
'target': 'new',
'view_type': 'form',
'res_id': self.id
}

To run a python function from a button in odoo 10,please use the following syntax.

<button string="Yes" name="action_yes" type="object" class="btn-primary"/>


<button string="No" class="btn-default" special="cancel"/>

Define the function

def action_yes:
print('code blocks')

special='cancel' attribute can be used to cancel and close the wizard

Regards

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

Let's discuss by taking an example, suppose if you are looking to do a confirmation functionality, you can create a transient model

with the Yes or No buttons, then from your main buttons, lets say Confirm button in sales which by default calls action_confirm method, you can inherit the button and instead of calling the action_confirm button, you can return your wizard.


Then once the wizard is displayed on user clicking the Yes button, you can trigger the action_confirm on the sale.order record, you can get the sale order, by browsing using the active_id in the context or by keeping related sale order field in the wizard. In the other hand, you can just pass special="cancel" for the No button.


Thanks

Ảnh đại diện
Huỷ bỏ
Tác giả

Hi Niyas, I did something like what you've said but neither yes nor no button does not trigger a function I put on them. What could be the problem?

Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 7 25
589
0
thg 12 24
1180
2
thg 10 24
1315
1
thg 8 24
2453
2
thg 7 24
1682