【发布时间】:2020-03-21 08:03:53
【问题描述】:
如何使用 odoo 13 企业仅在 CRM Won 阶段隐藏编辑按钮
我已经尝试在 odoo 13 XML 视图中使用以下代码:
attrs="{edit:'false':[('stage_id','=','4')]}"
【问题讨论】:
标签: odoo-13
如何使用 odoo 13 企业仅在 CRM Won 阶段隐藏编辑按钮
我已经尝试在 odoo 13 XML 视图中使用以下代码:
attrs="{edit:'false':[('stage_id','=','4')]}"
【问题讨论】:
标签: odoo-13
选项1:您可以通过扩展表单视图js来限制编辑按钮。
选项 2:您可以使用记录规则有条件地隐藏编辑按钮。您需要在记录规则中设置一个域。
<record model="ir.rule" id="your_reference_id">
<field name="name">your reference name</field>
<field name="model_id" ref="model_model_name"/>
<field eval="0" name="perm_unlink"/>
<field eval="0" name="perm_write"/>
<field eval="1" name="perm_read"/>
<field eval="0" name="perm_create"/>
<field name="domain_force">[(Condition)]</field>
</record>
谢谢
【讨论】:
您也可以使用 js 来完成。只需替换您的 模块名称 和 state。
odoo.define('module.extension_name', function (require) {
var FormView = require('web.FormView');
FormView.include({
load_record: function() {
this._super.apply(this, arguments);
if (this.model === 'your.model') {
if (this.datarecord && (this.datarecord.state === 'state')) {
this.$buttons.find('.o_form_button_edit').css({'display':'none'});
}
else {
this.$buttons.find('.o_form_button_edit').css({'display':''});
}
}
});
});
只需在 xml 文件中调用此 js。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="assets_backend" name="account assets"inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/path_to_js/static/src/js/file.js"/>
</xpath>
</template>
</data>
</odoo>
【讨论】: