From 238a0200a0cf67f9bf167b48c77ec1037b5da761 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 25 Aug 2011 16:57:41 +0200 Subject: [PATCH] [FIX] when loading records in the listview, remember to set dataset index to 0 so switching to formview does not try to create a new record lp bug: https://launchpad.net/bugs/816830 fixed bzr revid: xmo@openerp.com-20110825145741-gduqtgrqw4bbuugl --- addons/base/static/src/js/list.js | 49 ++++++++++++++++++------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index f2e37a1d683..a02b05ba5ab 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -382,10 +382,19 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * re-renders the content of the list view */ reload_content: function () { + var self = this; this.records.reset(); this.$element.find('.oe-listview-content').append( - this.groups.render( - $.proxy(this, 'compute_aggregates'))); + this.groups.render(function () { + if (self.dataset.index == null) { + var has_one = false; + self.records.each(function () { has_one = true; }); + if (has_one) { + self.dataset.index = 0; + } + } + self.compute_aggregates(); + })); }, /** * Event handler for a search, asks for the computation/folding of domains @@ -1039,25 +1048,25 @@ openerp.base.ListView.Groups = openerp.base.Class.extend( /** @lends openerp.bas var fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name'); var options = { offset: page * limit, limit: limit }; dataset.read_slice(fields, options , function (records) { - if (!self.datagroup.openable) { - view.configure_pager(dataset); - } else { - var pages = Math.ceil(dataset.ids.length / limit); - self.$row - .find('.oe-pager-state') - .text(_.sprintf('%d/%d', page + 1, pages)) - .end() - .find('button[data-pager-action=previous]') - .attr('disabled', page === 0) - .end() - .find('button[data-pager-action=next]') - .attr('disabled', page === pages - 1); - } + if (!self.datagroup.openable) { + view.configure_pager(dataset); + } else { + var pages = Math.ceil(dataset.ids.length / limit); + self.$row + .find('.oe-pager-state') + .text(_.sprintf('%d/%d', page + 1, pages)) + .end() + .find('button[data-pager-action=previous]') + .attr('disabled', page === 0) + .end() + .find('button[data-pager-action=next]') + .attr('disabled', page === pages - 1); + } - self.records.add(records, {silent: true}); - list.render(); - d.resolve(list); - }); + self.records.add(records, {silent: true}); + list.render(); + d.resolve(list); + }); return d.promise(); }, setup_resequence_rows: function (list, dataset) {