From f6c660b752ab423a5b3cf8956cd131b730d781f5 Mon Sep 17 00:00:00 2001 From: Khoi Nguyen Date: Wed, 16 Aug 2017 10:11:43 +0200 Subject: [FIX] web,pad: ensure pad content is displayed after discard Up to this revision, clicking on 'edit' in a record with an existing pad and discarding the changes straight away caused the pad content not to be displayed. The root cause of this issue is twofold: - a hack tricks the model into thinking the pad URL has changed by replacing it with an object yielding the URL when JSONified; - the pad never affects the 'dirtiness' of a record and BasicModel only actually discards changes when the record is dirty. When a user clicks on discard, the model does not actually discard the changes, thereby leaving the web client into thinking the pad URL is the object mentioned above. We fix this issue by requiring that the model always discard changes when clicking 'Discard', regardless of whether the record is dirty. In fact, the lines we changed were no longer correct since the introduction of 'doNotSetDirty' (see https://github.com/odoo/odoo/commit/72ed3a1), as a record could be changed without being dirty. This commit thus also ensures that such records are also properly discarded. --- addons/web/static/src/js/views/basic/basic_controller.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'addons/web/static/src/js/views/basic/basic_controller.js') diff --git a/addons/web/static/src/js/views/basic/basic_controller.js b/addons/web/static/src/js/views/basic/basic_controller.js index 6ba9dbea477..cfdee6793dd 100644 --- a/addons/web/static/src/js/views/basic/basic_controller.js +++ b/addons/web/static/src/js/views/basic/basic_controller.js @@ -329,9 +329,7 @@ var BasicController = AbstractController.extend(FieldManagerMixin, { if (options && options.readonlyIfRealDiscard && !needDiscard) { return; } - if (needDiscard) { // Just some optimization - self.model.discardChanges(recordID); - } + self.model.discardChanges(recordID); if (self.model.isNew(recordID)) { self._abandonRecord(recordID); return; -- cgit v1.2.3