【问题标题】:Hide edit button pipeline last stage only in odoo 13 enterprise仅在 odoo 13 企业版中隐藏编辑按钮管道最后阶段
【发布时间】:2020-03-21 08:03:53
【问题描述】:

如何使用 odoo 13 企业仅在 CRM Won 阶段隐藏编辑按钮

我已经尝试在 odoo 13 XML 视图中使用以下代码:

attrs="{edit:'false':[('stage_id','=','4')]}"

【问题讨论】:

    标签: odoo-13


    【解决方案1】:

    选项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>
    

    谢谢

    【讨论】:

    • 但我不知道编辑按钮的字段名称。 “domain_force”是编辑按钮字段名称还是其他字段?
    • @Bala 这是可以应用于记录级别的记录规则。因此,如果您添加了 domain_force ,这意味着您的条件得到满足,那么此记录将只执行对用户的读取访问权限。所以在那之后他们不能修改。[因为你只给他们读取和创建/写入/取消链接设置为 false 的权限]。所以这就是 Odoo 中记录规则的执行方式。
    • 好的我能理解。但我不知道它是如何申请odoo云在线版的。在记录规则部分询问“规则定义(域过滤器)”,访问权限部分已经我未选中应用对于写入、创建、删除 ..选择“对象”名称是 crm.lead 那么在 crm 最后阶段隐藏“编辑”按钮的规则定义是什么
    • @Bala Record Rule 必须制作一个 XML 文件,然后添加我的偏好,我已经添加了答案。只有你的模型是 crm.lead 和域力是这样的 - [('stage_id','=','4')]
    • 我试过这个,但我收到错误“请求的操作(“潜在客户/机会”(crm.lead)上的“读取”)由于以下规则而被拒绝:-编辑隐藏”(记录:新(id=11),用户:murugan.mu@gmail.com(id=2))
    【解决方案2】:

    您也可以使用 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>
    

    【讨论】:

    • "module.extension_name" 是什么意思?在 CRM 模块状态中是指 stage_id 还是 4?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多