如何针对特定组在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();
}
}
该代码将无法正常工作。