[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
This commit is contained in:
Xavier Morel 2011-08-25 16:57:41 +02:00
parent 3cfa390281
commit 238a0200a0
1 changed files with 29 additions and 20 deletions

View File

@ -382,10 +382,19 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
* re-renders the content of the list view * re-renders the content of the list view
*/ */
reload_content: function () { reload_content: function () {
var self = this;
this.records.reset(); this.records.reset();
this.$element.find('.oe-listview-content').append( this.$element.find('.oe-listview-content').append(
this.groups.render( this.groups.render(function () {
$.proxy(this, 'compute_aggregates'))); 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 * 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 fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name');
var options = { offset: page * limit, limit: limit }; var options = { offset: page * limit, limit: limit };
dataset.read_slice(fields, options , function (records) { dataset.read_slice(fields, options , function (records) {
if (!self.datagroup.openable) { if (!self.datagroup.openable) {
view.configure_pager(dataset); view.configure_pager(dataset);
} else { } else {
var pages = Math.ceil(dataset.ids.length / limit); var pages = Math.ceil(dataset.ids.length / limit);
self.$row self.$row
.find('.oe-pager-state') .find('.oe-pager-state')
.text(_.sprintf('%d/%d', page + 1, pages)) .text(_.sprintf('%d/%d', page + 1, pages))
.end() .end()
.find('button[data-pager-action=previous]') .find('button[data-pager-action=previous]')
.attr('disabled', page === 0) .attr('disabled', page === 0)
.end() .end()
.find('button[data-pager-action=next]') .find('button[data-pager-action=next]')
.attr('disabled', page === pages - 1); .attr('disabled', page === pages - 1);
} }
self.records.add(records, {silent: true}); self.records.add(records, {silent: true});
list.render(); list.render();
d.resolve(list); d.resolve(list);
}); });
return d.promise(); return d.promise();
}, },
setup_resequence_rows: function (list, dataset) { setup_resequence_rows: function (list, dataset) {