diff options
Diffstat (limited to 'addons/web/static/src/js/views')
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 3 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form_widgets.js | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js index 8b5905897b5..3f03c288841 100644 --- a/addons/web/static/src/js/views/form_view.js +++ b/addons/web/static/src/js/views/form_view.js @@ -74,6 +74,7 @@ var FormView = View.extend(common.FieldManagerMixin, { "footer_to_buttons": false, }); this.is_initialized = $.Deferred(); + this.record_loaded = $.Deferred(); this.mutating_mutex = new utils.Mutex(); this.save_list = []; this.render_value_defs = []; @@ -361,6 +362,7 @@ var FormView = View.extend(common.FieldManagerMixin, { 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; @@ -376,6 +378,7 @@ var FormView = View.extend(common.FieldManagerMixin, { 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); diff --git a/addons/web/static/src/js/views/form_widgets.js b/addons/web/static/src/js/views/form_widgets.js index fbc8a28e375..92782b5923a 100644 --- a/addons/web/static/src/js/views/form_widgets.js +++ b/addons/web/static/src/js/views/form_widgets.js @@ -436,6 +436,20 @@ var FieldCharDomain = common.AbstractField.extend(common.ReinitializeFieldMixin, this._super.apply(this, arguments); this.debug = session.debug; }, + start: function() { + var self = this; + var tmp = this._super(); + if (this.options.model_field){ + this.field_manager.fields[this.options.model_field].on("change:value", this, function(){ + if (self.view && self.view.record_loaded.state == "resolved" && self.view.onchanges_mutex){ + self.view.onchanges_mutex.def.then(function(){ + self.render_value(); + }); + } + }); + } + return tmp; + }, render_value: function() { var self = this; |
