[FIX] web: list views: bubble up failed deferreds.
authorChristophe Simonis <chs@openerp.com>
Thu, 14 Nov 2013 11:08:47 +0000 (12:08 +0100)
committerChristophe Simonis <chs@openerp.com>
Thu, 14 Nov 2013 11:08:47 +0000 (12:08 +0100)
[FIX] web: list view group: always call post_render method

lp bug: https://launchpad.net/bugs/1248531 fixed

bzr revid: chs@openerp.com-20131114110847-nn382fc60s7u7wp1

addons/web/static/src/js/view_list.js

index d5e9ef5..b9c789c 100644 (file)
@@ -1439,14 +1439,13 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
 
         var view = this.view,
            limit = view.limit(),
-               d = new $.Deferred(),
             page = this.datagroup.openable ? this.page : view.page;
 
         var fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name');
         var options = { offset: page * limit, limit: limit, context: {bin_size: true} };
         //TODO xmo: investigate why we need to put the setTimeout
-        $.async_when().done(function() {
-            dataset.read_slice(fields, options).done(function (records) {
+        return $.async_when().then(function() {
+            return dataset.read_slice(fields, options).then(function (records) {
                 // FIXME: ignominious hacks, parents (aka form view) should not send two ListView#reload_content concurrently
                 if (self.records.length) {
                     self.records.reset(null, {silent: true});
@@ -1478,13 +1477,12 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
 
                 self.records.add(records, {silent: true});
                 list.render();
-                d.resolve(list);
                 if (_.isEmpty(records)) {
                     view.no_result();
                 }
+                return list;
             });
         });
-        return d.promise();
     },
     setup_resequence_rows: function (list, dataset) {
         // drag and drop enabled if list is not sorted and there is a
@@ -1564,11 +1562,12 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we
                     self.render_groups(groups));
                 if (post_render) { post_render(); }
             }, function (dataset) {
-                self.render_dataset(dataset).done(function (list) {
+                self.render_dataset(dataset).then(function (list) {
                     self.children[null] = list;
                     self.elements =
                         [list.$current.replaceAll($el)[0]];
                     self.setup_resequence_rows(list, dataset);
+                }).always(function() {
                     if (post_render) { post_render(); }
                 });
             });