在odoo中隐藏动作内的删除按钮

时间:2018-08-30 05:43:52

标签: javascript odoo odoo-11

如何针对特定组在odoo中隐藏操作内的删除按钮。 假设,我有两个用户admin和demo,创建了一个名为button的组。当授予管理员权限时,该删除按钮将对管理员可见;而当授予用户权限时,则在这种情况下仅对用户可见。如果未授予用户权限,则该按钮对用户不可见。

我使用以下代码:

在security.xml文件中创建组

<?xml version="1.0" encoding="utf-8"?>
<odoo>   
    <data>
        <record id="group_delete_button" model="res.groups">
            <field name="name">Button</field>
        </record>
    </data>
</odoo>

自定义js隐藏特定组的按钮

renderSidebar: function ($node) {
    if (!this.sidebar && this.hasSidebar) {
        var otherItems = [];
        var has_delete_group = false;
        this.getSession().user_has_group('web.group_delete_button').then(function(has_group) {
            if (has_group) {
                has_delete_group = true
            } else {
                has_delete_group = false
            }
        }); 
        var otherItems = [];
        if (this.is_action_enabled('delete')) {
            if (has_delete_group) {
                debugger
                otherItems.push({
                    label: _t('Delete'),
                    callback: this._onDeleteRecord.bind(this),
                });
            }
        }
        if (this.is_action_enabled('create') && this.is_action_enabled('duplicate')) {
            otherItems.push({
                label: _t('Duplicate'),
                callback: this._onDuplicateRecord.bind(this),
            });
        }
        this.sidebar = new Sidebar(this, {
            editable: this.is_action_enabled('edit'),
            viewType: 'form',
            env: {
                context: this.model.get(this.handle).getContext(),
                activeIds: this.getSelectedIds(),
                model: this.modelName,
            },
            actions: _.extend(this.toolbarActions, {other: otherItems}),
        });
        this.sidebar.appendTo($node);

        // Show or hide the sidebar according to the view mode
        this._updateSidebar();
    }
}

该代码将无法正常工作。

0 个答案:

没有答案