我是Odoo的新开发人员,我的表单进入自定义状态时需要隐藏编辑按钮,由于安全问题,我需要此按钮。
当我尝试为表单赋予属性时,XML中的这段代码不起作用。
<record model="ir.ui.view" id="pesan_form_view">
<field name="name">pesan_service_form</field>
<field name="model">pesan.service</field>
<field name="arch" type="xml">
<form string="Booking Service" attrs="{edit:'false':[('state','in','baru')]}">
<!-- structure of form -->
</record>
我不知道为什么它不起作用。
最佳答案
qWeb条件不适用于FormView
。
您可以在此处进行检查(path_to_odoo / addons / web / static / src / js / framework / view.js):
/**
* Return whether the user can perform the action ('create', 'edit', 'delete') in this view.
* An action is disabled by setting the corresponding attribute in the view's main element,
* like: <form string="" create="false" edit="false" delete="false">
*/
is_action_enabled: function(action) {
var attrs = this.fields_view.arch.attrs;
return (action in attrs) ? JSON.parse(attrs[action]) : true;
},
此方法从path_to_odoo / addons / web / static / src / xml / base.xml中的模板
FormView.buttons
调用:<button t-if="widget.is_action_enabled('edit')"
type="button"
class="oe_form_button_edit btn btn-default btn-sm" accesskey="E">
Edit
</button>
这些问题在Odoo中借助规则解决(Odoo的
ir.rule
对象)您可以在GUI中找到和编辑规则:设置(顶部菜单)->安全性(左侧菜单)->访问规则(左侧菜单)。为此,请在调试模式中使用管理员用户。
同时,您可以向模块的
data.xml
添加一些规则以进行导入。它们将在您安装或更新模块时添加。小心! Record rules do not apply to the Administrator user。
同时,您可以尝试扩展小部件
FormView
。希望对您有帮助。
关于openerp - 如何根据条件隐藏表单上的“编辑/创建”按钮?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35196277/