summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/views')
-rw-r--r--addons/web/static/src/js/views/form_view.js3
-rw-r--r--addons/web/static/src/js/views/form_widgets.js14
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;