Odoo tree视图按钮添加

1、继承ListView Qweb模板

创建一个qweb模块,继承ListView,保存在 static/xml/qweb.xml文件中,内容如下:

  

    

      

        

      

    

 

2、载入上一步的qweb模板

在_____manifest___.py 文件中载入qweb模板文件:

"qweb":["static/src/xml/qweb.xml",],

3、创建JS处理代码

创建一个js文件,实现按钮的onclick事件,保存为文件 static/src/js/tree_view_button.js,内容如下:

odoo.define('ticket_management.list_tender_button_create', function (require) {

    "use strict";

    var ListController = require('web.ListController');

    ListController.include({

        renderButtons: function ($node) {

            this._super.apply(this, arguments);

            if (this.$buttons) {

                this.$buttons.on('click', '.list_tender_button_create', this._invitation_to_button.bind(this));

            }

        },

        _invitation_to_button: function () {

            var self = this;

            var records = this.getSelectedIds();

            self._rpc({

                model: 'test.management',

                method: 'action_to_test',

                // args: [records]

            }, [])

            // .done(function () {

            //     self._after_invitation()

            // });

        },

        // _after_invitation: function () {

        //     this.do_notify(_t("Invitation or Reset Password"), _t("Successfully completed"));

        // },

    });

});

4、创建文件view/web_asset.xml,里面载入上一步创建的js文件:

    

5、在manifest.py文件中载入 view/asset.xml文件:

"data": ["view/web_asset.xml",],

6、在模型py文件里写的函数:

class TestManagement(models.Model):
    _name = 'test.management'
    
    @api.model
    def action_to_test(self):
        "编写代码"
        pass

你可能感兴趣的:(odoo,webview,html,python)