我正在尝试在Odoo中扩展One2Many Field小部件这是我的Java代码
openerp.bahia_personnel_management = function (instance) {
instance.web.form.custom_widgets.add('one2many_remove_spec_columns','instance.bahia_personnel_management.one2many_remove_spec_columns');
instance.bahia_personnel_management.one2many_remove_spec_columns = instance.web.form.FieldOne2Many.extend({
_start: function() {
this._super.apply(this, arguments);
throw "YAHOO"
}
});};
正如您现在在我的JavaScript中所看到的,我仅首先抛出一个异常来测试我的窗口小部件是否真正工作,而我窗口小部件的目的是删除特定的表头,这是我的XML代码,带有我的自定义小部件。
<field name="employee_checklists_documents_list" string ="" widget = "one2many_remove_spec_columns">
<tree class = "oe_checklist_bahia" editable="top/bottom" create = "false" limit = "500"> <!-- class = "oe_checklist_bahia" string = ""-->
<field name="param_name_1" readonly = "1" />
<field name="param_name_1_value" attrs="{'invisible': [('param_name_1_value_visible', '=', False)]}"/>
<field name="param_name_1_check" string = "" attrs="{'invisible': [('param_name_1_check_visible', '=', False)]}"/>
<field name="param_name_1_value_visible" invisible = "1" />
<field name="param_name_1_check_visible" invisible = "1" />
</tree>
调用自定义窗口小部件所需的其他参数
odoo.define('yvonne', function (require) {
"use strict";
var core = require('web.core');
//enter code here
var FieldMany2One = core.form_widget_registry.get('many2one');
FieldMany2One.include({
init: function(field_manager, node) {
console.log(" many 2 one init");
this._super(field_manager, node);
this.limit = 10
},
});
}
我希望这对你有用