Odoo 开新 window

Odoo open new window

我想在 Odoo 11 的 CRM 机会中创建一个按钮。我想打开一个 window 包含此机会的所有消息(模型 mail.message)

我尝试创建我的第一个插件。

这是我的结构:

这是我的代码:

/odoo/addons/test/__manifest__.py

{
'name': 'test',
'version': '2.0',
'category': 'Sales',
'sequence': 5,
'summary': 'test',
'description': "",
'website': 'https://test.net',
'depends': [
    'crm'
],
'data': [
],
'demo': [
],
'css': [],
'installable': True,
'application': True,
'auto_install': False,
}

/odoo/addons/test/__init__.py

from . import models

/odoo/addons/test/模型/__init__.py

from . import test

/odoo/addons/test/模型/test.py

from odoo import models, fields


class test_test(models.Model):
    _inherit = 'crm.lead'

    @api.multi
    def test_test(self):
        return {
            'name': 'test_test',
            'res_model': 'mail.message',
            'view_type': 'list',
            'view_mode': 'tree,list',
            'type': 'ir.actions.act_window',
            'target': 'inline'
        }

crm.lead.form.opportunity

 <button name='%(test_test)d' string="test" type="action" />

我安装了我的应用程序,但按钮不起作用,也没有显示任何错误。而且我无法在 UI.

中看到我的操作

要从您需要定义对象类型按钮的视图调用函数,如下所示。

<button name='test_test' string="test" type="object" />

它将调用模型 crm.lead 中的函数 test_test,(确保您的按钮位于 crm.lead 模型视图中。)

并且您需要像下面这样更改函数

@api.multi
def test_test(self):
    return {
        'name': 'test_test',
        'res_model': 'mail.message',
        'view_type': 'list',
        'view_mode': 'tree,list',
        'type': 'ir.actions.act_window',
        'target': 'new' # will open a popup with mail.message list
    }

希望对您有所帮助!