summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-08-25 16:57:41 +0200
committerXavier Morel <xmo@openerp.com>2011-08-25 16:57:41 +0200
commit238a0200a0cf67f9bf167b48c77ec1037b5da761 (patch)
tree61d6f6fb0f700c0237ba328d17f0562102d6207b /addons/base/static/src
parent3cfa39028166c25481b6e7b4e7467d290b33e3cb (diff)
[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
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/list.js49
1 files 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) {