0

我正在使用 Odoo 10。

我向ListView.buttons添加了一个按钮,但我无法将操作链接到它。

我的按钮:

<t t-extend="ListView.buttons">
    <t t-jquery="button.o_list_button_add" t-operation="after">
        <t t-if="widget.fields_view.name == 'site.tree'">
            <button type="button" class="btn btn-primary btn-sm oe_create_customer_button">
                Create Customer Site
            </button>
        </t>
    </t>
</t>

js代码:

openerp.broadband = function(instance, local) {

instance.web.ListView.include({
    render_buttons: function() {
        this._super.apply(this, arguments)
        if (this.$buttons) {
            this.$buttons.find('.oe_create_customer_button').on('click', this.proxy('do_new_button'))
        }
    },
    do_new_button: function () {
        this.do_action({
            type: 'ir.actions.act_window',
            name: 'site_wizard_act_js',
            res_model: 'broadband.wizard',
            view_type: 'form',
            view_mode: 'form',
            view_id: 'site_wizard_act',
            target: 'new',
        })
    }
})
}

但是当我单击按钮时, Odoo 给了我“TypeError:this.view_order[0] is undefined” 。

有人能帮我吗?

谢谢。

4

1 回答 1

1

[解决了]

我在动作中添加了“上下文”“视图”参数。

instance.web.ListView.include({
    render_buttons: function() {
        this._super.apply(this, arguments)
        if (this.$buttons) {
            this.$buttons.find('.oe_create_customer_button').on('click', this.proxy('do_new_button'))
        }
    },
    do_new_button: function () {
        var context = {
            'id': this.id,
        }
        var action = ({
            type: 'ir.actions.act_window',
            res_model: 'broadband.wizard',
            view_type: 'form',
            view_mode: 'form',
            views: [[false, 'form']],
            target: 'new',
            context: context
        })
        this.do_action(action)
    }
})
于 2016-12-12T09:32:58.527 回答