[FIX] data: _.find (prefered to older _.detect) may return undefined if no match...
authorMartin Trigaux <mat@openerp.com>
Thu, 13 Feb 2014 08:50:08 +0000 (09:50 +0100)
committerMartin Trigaux <mat@openerp.com>
Thu, 13 Feb 2014 08:50:08 +0000 (09:50 +0100)
Instead returns undefined which is handled below.
This does not solve the issue when records are not loaded properly but gives a better information on the reason.

bzr revid: mat@openerp.com-20140213085008-pnq4r0ebfl072u78

addons/web/static/src/js/data.js

index e1290de..abfb4c1 100644 (file)
@@ -848,7 +848,8 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({
         });
         var return_records = function() {
             var records = _.map(ids, function(id) {
-                return _.extend({}, _.detect(self.cache, function(c) {return c.id === id;}).values, {"id": id});
+                var c = _.find(self.cache, function(c) {return c.id === id;});
+                return _.isUndefined(c) ? c : _.extend({}, c.values, {"id": id});
             });
             if (self.debug_mode) {
                 if (_.include(records, undefined)) {