summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-07-14 15:53:24 +0200
committerChristophe Simonis <chs@odoo.com>2017-07-14 15:53:24 +0200
commitde5a6e3a8f071f9abc958cd9d9d528fd4da6b2c0 (patch)
treedecf40365c40eae5345779175ea392c40e440b41 /addons/web/static/src
parentdb2f82d5f1a8c4fdbbd61a0aa7daef2def0ef06e (diff)
parent29e4394af96eb4856fad913d2427320c11c30523 (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.js2
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js19
-rw-r--r--addons/web/static/src/js/views/form/form_controller.js26
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