diff options
| author | Mohammed Shekha <msh@odoo.com> | 2020-08-17 11:13:21 +0000 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2020-12-21 10:52:25 +0000 |
| commit | 61f8ced67992b20edfac139c749ec00939f408a3 (patch) | |
| tree | 6179b70849239cd4f3f24ae4675fcebd9c6d83d0 /addons/web | |
| parent | e9ef98410fa6acba165f3056d9c52f8e68cc768b (diff) | |
[FIX] web: SampleServer: round float values
before this commit: when field is float type it display too much decimal
precision value, it should be fixed to 2 precision for sample data.
after this commit: float field will display 2 decimal precision value.
task-2318503
closes odoo/odoo#55987
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Kamesh Patel <kat@odoo.com>
Diffstat (limited to 'addons/web')
| -rw-r--r-- | addons/web/static/src/js/views/sample_server.js | 15 | ||||
| -rw-r--r-- | addons/web/static/tests/views/sample_server_tests.js | 5 |
2 files changed, 17 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views/sample_server.js b/addons/web/static/src/js/views/sample_server.js index c56ced9cead..43c5594413b 100644 --- a/addons/web/static/src/js/views/sample_server.js +++ b/addons/web/static/src/js/views/sample_server.js @@ -151,7 +151,7 @@ odoo.define('web.SampleServer', function (require) { for (const record of records) { value += record[fieldName]; } - values[fieldName] = value; + values[fieldName] = this._sanitizeNumber(value); } else { values[fieldName] = null; } @@ -314,7 +314,7 @@ odoo.define('web.SampleServer', function (require) { * @returns {number} float in [O, max[ */ _getRandomFloat(max) { - return Math.random() * max; + return this._sanitizeNumber(Math.random() * max); } /** @@ -592,6 +592,16 @@ odoo.define('web.SampleServer', function (require) { } /** + * Rounds the given number value according to the configured precision. + * @private + * @param {number} value + * @returns {number} + */ + _sanitizeNumber(value) { + return parseFloat(value.toFixed(SampleServer.FLOAT_PRECISION)); + } + + /** * A real (web_)read_group call has been done, and it has returned groups, * but they are all empty. This function updates the sample data such * that those group values exist and those groups contain sample records. @@ -653,6 +663,7 @@ odoo.define('web.SampleServer', function (require) { SampleServer.MAX_COLOR_INT = 7; SampleServer.MAX_MONETARY = 100000; SampleServer.DATE_DELTA = 24 * 60; // in hours -> 60 days + SampleServer.FLOAT_PRECISION = 2; SampleServer.SAMPLE_COUNTRIES = ["Belgium", "France", "Portugal", "Singapore", "Australia"]; SampleServer.SAMPLE_PEOPLE = [ diff --git a/addons/web/static/tests/views/sample_server_tests.js b/addons/web/static/tests/views/sample_server_tests.js index 24bb60611ea..9eedd16c7f5 100644 --- a/addons/web/static/tests/views/sample_server_tests.js +++ b/addons/web/static/tests/views/sample_server_tests.js @@ -77,7 +77,7 @@ odoo.define('web.sample_server_tests', function (require) { QUnit.module("Basic behaviour"); QUnit.test("Sample data: people type + all field names", async function (assert) { - assert.expect(24); + assert.expect(25); mock.patch(session, { company_currency_id: 4, @@ -134,6 +134,9 @@ odoo.define('web.sample_server_tests', function (require) { assertBetween('age', 0, MAX_INTEGER); assertBetween('salary', 0, MAX_MONETARY); + // check float field have 2 decimal rounding + assert.strictEqual(rec.height, parseFloat(parseFloat(rec.height).toFixed(2))); + const selectionValues = this.fields['res.users'].type.selection.map( (sel) => sel[0] ); |
