From cb30783aba642627c6bf71d4aa812de00e7d536d Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Fri, 3 Oct 2014 11:21:48 +0200 Subject: [PATCH] [FIX] web: avoid force_reload in list editable When creating a new record in list editable, due to previous commit 6349048, the load_record was called twice and the first record of the current list view (self.dataset.index) was used to fill the new record. With this, we make sure a new record is indeed created. Fix the web test to have a default_get call in mock models and increase the number of default_get assertions (for creations in list editable, the default_get is then called twice, not optimal but due to the absence of distinction between empty datarecord and filled with default values). --- addons/web/static/src/js/view_form.js | 2 +- addons/web/static/test/list-editable.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 3e5d386..58067c5 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -284,7 +284,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var shown = this.has_been_loaded; if (options.reload !== false || !this.datarecord.id) { shown = shown.then(function() { - if (self.dataset.index === null) { + if (self.dataset.index === null || !self.datarecord.id) { // null index means we should start a new record return self.on_button_new(); } diff --git a/addons/web/static/test/list-editable.js b/addons/web/static/test/list-editable.js index a91d501..3032ae7 100644 --- a/addons/web/static/test/list-editable.js +++ b/addons/web/static/test/list-editable.js @@ -9,6 +9,9 @@ openerp.testing.section('editor', { mock('test.model:onchange', function () { return {}; }); + mock('test.model:default_get', function () { + return {}; + }); } }, function (test) { /** @@ -211,7 +214,7 @@ openerp.testing.section('list.edition', { }); } }, function (test) { - test('newrecord', {asserts: 6}, function (instance, $fix, mock) { + test('newrecord', {asserts: 7}, function (instance, $fix, mock) { var got_defaults = false; mock('demo:default_get', function (args) { var fields = args[0]; -- 1.7.10.4