diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index a3f0d82bb63..c462ae49798 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -850,7 +850,11 @@ openerp.web.FormView = openerp.web.View.extend({ }); d.template = 'FormView.set_default'; d.open(); - } + }, + register_field: function(field, name) { + this.fields[name] = field; + this.fields_order.push(name); + }, }); /** @@ -914,6 +918,7 @@ openerp.web.form.FormRenderingEngine = openerp.web.Class.extend({ w.set_input_id($label.attr("for")); } self.alter_field(w); + self.view.register_field(w, $elem.attr("name")); w.replace($elem); }); _.each(this.tags_to_init, function($elem) { @@ -1625,8 +1630,6 @@ openerp.web.form.AbstractField = openerp.web.form.Widget.extend(/** @lends opene this._super(field_manager, node); this.name = this.node.attrs.name; this.value = false; - this.view.fields[this.name] = this; - this.view.fields_order.push(this.name); this.field = this.view.fields_view.fields[this.name] || {}; this.set({required: this.modifiers['required'] === true}); this.invalid = this.dirty = false; diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index aea7f6837c1..41f8c012731 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -413,6 +413,7 @@ openerp.web.list_editable = function (openerp) { } var obj = self.view.fields_registry.get_object(key); var w = new (obj)(self.view, openerp.web.xml_to_json(el)); + self.view.register_field(w, $(el).attr("name")); w.appendTo($td); $td.appendTo($element); });