diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index f7dd6d2ca4f..44567c7ff43 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -625,6 +625,10 @@ instance.web.DataSet = instance.web.Class.extend(instance.web.PropertiesMixin, remove_ids: function (ids) { this.alter_ids(_(this.ids).difference(ids)); }, + add_ids: function(ids, at) { + var self = this; + _.each(ids, function(id){ self.ids.splice(at, 0, id); }); + }, /** * Resequence records. * diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index b96079d2051..76831be82fa 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -896,7 +896,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. this.record_callbacks = { 'remove': function (event, record) { var id = record.get('id'); - self.dataset.remove_ids([id]) + self.dataset.remove_ids([id]); var $row = self.$current.children('[data-id=' + id + ']'); var index = $row.data('index'); $row.remove(); @@ -925,6 +925,8 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. }, 'add': function (ev, records, record, index) { var $new_row = $(self.render_record(record)); + var id = record.get('id'); + self.dataset.add_ids([id], index); if (index === 0) { $new_row.prependTo(self.$current);