From 9c8a2c33abd0dcd93eb4fff9c40d5104cf68d351 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 25 Jul 2011 16:11:03 +0200 Subject: [PATCH] [FIX] check that a value is a number before checking for isNaN: strings are NaN and so are objects also alias 'record.value', so we don't have to go through the indirection 11 times bzr revid: xmo@openerp.com-20110725141103-2ix5mhec6lk47en6 --- addons/base/static/src/js/list.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 7b12da67697..a2fca3aa89e 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -24,11 +24,13 @@ openerp.base.list = { ].join('') } - var record = row_data[column.id]; + var value = row_data[column.id].value; // If NaN value, display as with a `false` (empty cell) - if (isNaN(record.value)) { record.value = false; } - switch (record.value) { + if (typeof value === 'number' && isNaN(value)) { + value = false; + } + switch (value) { case false: case Infinity: case -Infinity: @@ -36,23 +38,23 @@ openerp.base.list = { } switch (column.widget || column.type) { case 'integer': - return _.sprintf('%d', record.value); + return _.sprintf('%d', value); case 'float': var precision = column.digits ? column.digits[1] : 2; - return _.sprintf('%.' + precision + 'f', record.value); + return _.sprintf('%.' + precision + 'f', value); case 'float_time': return _.sprintf("%02d:%02d", - Math.floor(record.value), - Math.round((record.value % 1) * 60)); + Math.floor(value), + Math.round((value % 1) * 60)); case 'progressbar': return _.sprintf( '%.2f%%', - record.value, record.value); + value, value); case 'many2one': // name_get value format - return record.value[1]; + return value[1]; default: - return record.value; + return value; } } };