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

I want a popup when a user is saving for example a product. I tried to override the write method but it didn't work. So I'm returning a new action but it gets ignored. Any ideas on this ? 

write:

def write(self, vals):
res = super(ProductTemplate, self).write(vals)
if vals:
# call popup window action:
view_item = [(self.env.ref('versioning.versioning_text_wizard_view').id, 'form')]
view = self.env.ref('versioning.versioning_text_wizard_view')
return {
'name': 'Versioning Text',
'view_type': 'form',
'view_mode': 'form',
'view_id': view.id,
'res_model': 'product.template',
'views': view_item,
'type': 'ir.actions.act_window',
'target': 'new',
}
return res

Thank you

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

no information about this? any other solutions?

You can not add two return method for same method

Câu trả lời hay nhất

Odoo framework does not allow to return any action/wizard from ORM methods like create/write/search, etc.

You will have to change your requirement and look for other ways to open a popup wizard like from the button.

Ả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

Thanks

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

why not you can raise the wizard using the exception RedirectWarning.


from odoo.exceptions import RedirectWarning

@api.model
def create(self, vals):
res = super().create(vals)
 wizrd_action_id = self.env.ref('stock_move_location.wiz_stock_quant_location_action')
msg = "Are You sure! "
raise RedirectWarning(msg, wizrd_action_id.id, _('Go to the wizard'),
{'active_id': self._origin.id,})
Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 1 25
1328
1
thg 3 15
5564
0
thg 3 15
3957
0
thg 7 25
395
0
thg 5 24
1120