问题描述
当字段类型 ('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 (将#修改为@)