summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2017-04-05 11:32:56 +0200
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commitd0f321d6cc198045ff796865d94ddd15bd6d0b99 (patch)
treebca09205acf450a8932bafd27f554114c0fdf867 /addons/web/static/src
parentbc89bb79d2eac7db2861127bc41dcaf131568d4b (diff)
[FIX] web: Form: don't discard onchange when editing a o2m
Assume that there is an onchange on a form view that upates the records of a one2many field. Before this rev., if the user edited one of those one2many records (in a dialog) after the onchange, the onchange values were lost.
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js6
-rw-r--r--addons/web/static/src/js/views/basic/basic_view.js1
2 files changed, 6 insertions, 1 deletions
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 47d5cee5c9c..c71ac81e0d9 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -504,6 +504,8 @@ var BasicModel = AbstractModel.extend({
*
* @param {string} id local id for a resource
* @param {Object} [options]
+ * @param {boolean} [options.keepChanges=false] if true, doesn't discard the
+ * changes on the record before reloading it
* @returns {Deferred -> string} resolves to the id of the resource
*/
reload: function (id, options) {
@@ -520,7 +522,9 @@ var BasicModel = AbstractModel.extend({
};
return this._makeDefaultRecord(element.model, params);
}
- this.discardChanges(id);
+ if (!options.keepChanges) {
+ this.discardChanges(id);
+ }
}
if (options.context !== undefined) {
diff --git a/addons/web/static/src/js/views/basic/basic_view.js b/addons/web/static/src/js/views/basic/basic_view.js
index 46ecb5d7e38..d850b2b7a2f 100644
--- a/addons/web/static/src/js/views/basic/basic_view.js
+++ b/addons/web/static/src/js/views/basic/basic_view.js
@@ -66,6 +66,7 @@ var BasicView = AbstractView.extend({
if (fieldNames.length && !this.model.isNew(record.id)) {
return this.model.reload(this.recordID, {
fieldNames: fieldNames,
+ keepChanges: true,
viewType: viewType,
});
} else {