美文网首页
odoo selection字段隐藏指定的可选项

odoo selection字段隐藏指定的可选项

作者: grey_27 | 来源:发表于2022-09-27 22:16 被阅读0次

需求:
一个selection字段前期设置A,B,C三个选项,后期业务变动需要改成B,C,D,但是历史数据不能修改,即还要保留A选项,此时代码里的字段设置只能改成A,B,C,D四个值了,但是又要求下拉选项中不能再出现A

思路:
基于以上需求其实思路也就只有一个那就是在编辑状态下隐藏selection字段的中下拉选项A,简单查找一下发现原生中就有隐藏操作,下拉选项本身是可以选择空值的,但是如果字段设为必填后空值选项就消失了,所以只要复用一下这隐藏方法就能达到我们的目的了

实现:
排查后找到最终代码位置:
/addons/web/static/src/js/fields/relational_fields.js FieldSelection类中的_renderEdit方法

_renderEdit: function () {
        this.$el.empty();
        var required = this.attrs.modifiersValue && this.attrs.modifiersValue.required;
        for (var i = 0 ; i < this.values.length ; i++) {
            var disabled = required && this.values[i][0] === false;

            this.$el.append($('<option/>', {
                value: JSON.stringify(this.values[i][0]),
                text: this.values[i][1],
                style: disabled ? "display: none" : "",
            }));
        }
        this.$el.val(JSON.stringify(this._getRawValue()));
    },

只需要将我们的逻辑加入disabled的判断中就可以实现屏蔽指定的值

// var disabled = required && this.values[i][0] === false;
// Selection字段增加指定下拉选择时隐藏指定选项
// 使用方法: 在xml对应字段标签中增加参数 options="{'hide_values':['A']}"
var disabled = (required && this.values[i][0] === false) || (this.nodeOptions.hide_values && this.nodeOptions.hide_values.includes(this.values[i][0]));

相关文章

  • odoo selection字段隐藏指定的可选项

    需求:一个selection字段前期设置A,B,C三个选项,后期业务变动需要改成B,C,D,但是历史数据不能修改,...

  • odoo selection字段类型的动态添加

    Selection字段类型一般作为下拉列表显示selection的选项内容基本是固定,但是针对一些特殊要求 根据权...

  • odoo 对字段权限控制技巧

    odoo 的权限可以分为对模型,对记录,对字段,但是对字段的权限仅仅只能控制字段的只读,隐藏,必填,无法做到按权限...

  • 2.2 Odoo配置文件详解

    配置文件默认没有,需要时自己来生成或指定~/odoo-dev/odoo/odoo-bin --save --sto...

  • 7 MongoDB查询文档

    query,可选项,使用查询操作符指定查询条件projection,可选项,使用投影操作符指定返回键值,若查询时返...

  • odoo ORM研究3 - odoo fields常用的字段属性

    之前我们已经讲解了odoo ORM中的一些对字段常用的API操作方法,今天我们继续研究一下Odoo orm中字段的...

  • elasticsearch排序

    默认按照_score排序,如果指定排序字段,_score字段不再经过计算,按照指定字段进行排序。但是如果指定字段是...

  • Odoo 内置widget

    一:Widget是什么Odoo中定义了字段的显示形式,不同字段类型的字段都有其不同的默认widget负责展示。我们...

  • ORM之字段属性对象Field

    字段属性对象Field Model的字段属性对应数据表中的相应字段,pg表中不同的字段有不同类型,Odoo也为其封...

  • Odoo11中产品类别显示为英文的解决方法

    在odoo的中文环境下产品类别总是显示为英文,翻阅源代码了解到odoo用于显示分类的字段是complate_nam...

网友评论

      本文标题:odoo selection字段隐藏指定的可选项

      本文链接:https://www.haomeiwen.com/subject/oksqartx.html