diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index b0dc4fcc289..925490b7459 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -82,7 +82,12 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { } switch (descriptor.widget || descriptor.type) { case 'integer': - var tmp = Number(value); + var tmp; + do { + tmp = value; + value = value.replace(openerp.web._t.database.parameters.thousands_sep, ""); + } while(tmp !== value); + tmp = Number(value); if (isNaN(tmp)) throw value + " is not a correct integer"; return tmp; diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index fff168453bd..14987fab289 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -720,7 +720,11 @@ openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends open openerp.web.search.IntegerField = openerp.web.search.NumberField.extend(/** @lends openerp.web.search.IntegerField# */{ error_message: "not a valid integer", parse: function (value) { - return parseInt(value, 10); + try { + return openerp.web.parse_value(value, {'widget': 'integer'}); + } catch (e) { + return NaN; + } } }); /** @@ -1173,7 +1177,7 @@ openerp.web.search.ExtendedSearchProposition.Integer = openerp.web.OldWidget.ext ], get_value: function() { try { - return Math.round(openerp.web.parse_value(this.$element.val(), {'widget': 'float'})); + return openerp.web.parse_value(this.$element.val(), {'widget': 'integer'}); } catch (e) { return ""; }