diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 92121e75a85..5c7a85f3bc3 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -118,6 +118,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM "footer_to_buttons": false, }); this.is_initialized = $.Deferred(); + this.record_loaded = $.Deferred(); this.mutating_mutex = new $.Mutex(); this.save_list = []; this.render_value_defs = []; @@ -329,6 +330,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this._actualize_mode(); this.set({ 'title' : record.id ? record.display_name : _t("New") }); + this.record_loaded = $.Deferred(); _(this.fields).each(function (field, f) { field._dirty_flag = false; field._inhibit_on_change_flag = true; @@ -344,6 +346,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM self.on_form_changed(); self.rendering_engine.init_fields(); self.is_initialized.resolve(); + self.record_loaded.resolve(); self.do_update_pager(record.id === null || record.id === undefined); if (self.sidebar) { self.sidebar.do_attachement_update(self.dataset, self.datarecord.id); @@ -2568,7 +2571,7 @@ instance.web.form.FieldCharDomain = instance.web.form.AbstractField.extend(insta }); if (this.options.model_field){ this.field_manager.fields[this.options.model_field].on("change:value", this, function(){ - if (self.view && self.view.onchanges_mutex){ + if (self.view && self.view.record_loaded.state == "resolved" && self.view.onchanges_mutex){ self.view.onchanges_mutex.def.then(function(){ self.display_field(); });