微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试覆盖小部件 DomainLeaf 中的函数 _getOperatorsFromType 但它没有用

如何解决我正在尝试覆盖小部件 DomainLeaf 中的函数 _getOperatorsFromType 但它没有用

当字段类型 ('float','integer','monetary') 到 odoo 12 EE 时,我正在尝试添加运算符“之间”。

我正在尝试覆盖小部件 DomainLeaf 中的函数 _getoperatorsFromType 但它没有用,知道吗?

odoo.define('custom_module.DomainLeaf',function(require) {
    "use strict";
    var DomainLeaf = require("web.DomainSelector");
    var Widget = require("web.Widget");

    var core = require("web.core");
    var _t = core._t;
    var _lt = core._lt;

    var operator_mapping = {
        "=": "=","!=": _lt("is not ="),">": ">","<": "<",">=": ">=","<=": "<=","ilike": _lt("contains"),"not ilike": _lt("does not contain"),"in": _lt("in"),"not in": _lt("not in"),"child_of": _lt("child of"),"parent_of": _lt("parent of"),"like": "like","not like": "not like","=like": "=like","=ilike": "=ilike","between": _lt("is between"),// custom
        "set": _lt("is set"),"not set": _lt("is not set"),};
    console.log("Module Loaded");

    var DomainLeaf = DomainLeaf.include({
        template: 'DomainLeaf',_getoperatorsFromType: function(type) {
            var operators = {};

            switch (type) {
                case "boolean":
                    operators = {
                        "=": _t("is"),"!=": _t("is not"),};
                    break;

                case "char":
                case "text":
                case "html":
                    operators = _.pick(operator_mapping,"=","!=","ilike","not ilike","set","not set","in","not in");
                    break;

                case "many2many":
                case "one2many":
                case "many2one":
                    operators = _.pick(operator_mapping,"not set");
                    break;

                case "integer":
                case "float":
                case "monetary":
                    operators = _.pick(operator_mapping,">","<",">=","<=","between");
                    break;

                case "selection":
                    operators = _.pick(operator_mapping,"not set");
                    break;

                case "date":
                case "datetime":
                    operators = _.pick(operator_mapping,"not set");
                    break;

                default:
                    operators = _.extend({},operator_mapping);
                    break;
            }

            if (this.options.operators) {
                operators = _.pick.apply(_,[operators].concat(this.options.operators));
            }

            return operators;
        },});
});

我没有收到任何错误,除了继承函数的行为没有改变外,一切正常。 我已将 .js 文件添加到 assets_backend 并且模块已正确加载,但该函数未被覆盖。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。