diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-07-14 15:53:24 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-07-14 15:53:24 +0200 |
| commit | de5a6e3a8f071f9abc958cd9d9d528fd4da6b2c0 (patch) | |
| tree | decf40365c40eae5345779175ea392c40e440b41 /addons/web/static/src | |
| parent | db2f82d5f1a8c4fdbbd61a0aa7daef2def0ef06e (diff) | |
| parent | 29e4394af96eb4856fad913d2427320c11c30523 (diff) | |
[MERGE] forward port branch saas-16 up to 29e4394af96
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 19 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form/form_controller.js | 26 |
3 files changed, 33 insertions, 14 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 6eb828a9c7e..2f41f81f932 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -65,7 +65,7 @@ var DebouncedField = AbstractField.extend({ * it could be a good idea to debounce the changes. In that case, this is * the suggested value. */ - DEBOUNCE: 1000, + DEBOUNCE: 1000000000, /** * Override init to debounce the field "_doAction" method (by creating a new diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index c562fa388f0..5fb77204ec7 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -84,11 +84,14 @@ odoo.define('web.BasicModel', function (require) { var AbstractModel = require('web.AbstractModel'); var concurrency = require('web.concurrency'); +var core = require('web.core'); var Context = require('web.Context'); var Domain = require('web.Domain'); var fieldUtils = require('web.field_utils'); var session = require('web.session'); +var _t = core._t; + var x2ManyCommands = { // (0, _, {values}) CREATE: 0, @@ -421,6 +424,22 @@ var BasicModel = AbstractModel.extend({ return list; }, /** + * Returns the current display_name for the record. + * + * @param {string} id the localID for a valid record element + * @returns {string} + */ + getName: function (id) { + var record = this.localData[id]; + if (record._changes && 'display_name' in record._changes) { + return record._changes.display_name; + } + if ('display_name' in record.data) { + return record.data.display_name; + } + return _t("New"); + }, + /** * Returns true if a record is dirty. A record is considered dirty if it has * some unsaved changes, marked by the _isDirty property on the record or * one of its subrecords. diff --git a/addons/web/static/src/js/views/form/form_controller.js b/addons/web/static/src/js/views/form/form_controller.js index c95278aa255..cdfe2cb8d5d 100644 --- a/addons/web/static/src/js/views/form/form_controller.js +++ b/addons/web/static/src/js/views/form/form_controller.js @@ -87,8 +87,7 @@ var FormController = BasicController.extend({ * @returns {string} */ getTitle: function () { - var dataPoint = this.model.get(this.handle, {raw: true}); - return dataPoint.data.display_name || _t('New'); + return this.model.getName(this.handle); }, /** * Called each time the form view is attached into the DOM @@ -183,13 +182,15 @@ var FormController = BasicController.extend({ * @override */ saveRecord: function () { - var result = this._super.apply(this, arguments); - if (_t.database.multi_lang) { - var self = this; - result.then(function (changedFields) { - if (!changedFields.length) { - return changedFields; - } + var self = this; + return this._super.apply(this, arguments).then(function (changedFields) { + // the title could have been changed + self.set('title', self.getTitle()); + self._updateEnv(); + + if (_t.database.multi_lang && changedFields.length) { + // need to make sure changed fields that should be translated + // are displayed with an alert var fields = self.renderer.state.fields; var alertFields = []; for (var k = 0; k < changedFields.length; k++) { @@ -201,9 +202,9 @@ var FormController = BasicController.extend({ if (alertFields.length) { self.renderer.displayTranslationAlert(alertFields); } - }); - } - return result; + } + return changedFields; + }); }, //-------------------------------------------------------------------------- @@ -370,7 +371,6 @@ var FormController = BasicController.extend({ // save the record but don't switch to readonly mode def = this.saveRecord(this.handle, { stayInEdit: true, - reload: false, }).then(function () { // we need to reget the record to make sure we have changes made // by the basic model, such as the new res_id, if the record is |
