summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorMichael Mattiello (mcm) <mcm@odoo.com>2020-06-08 07:10:08 +0000
committerMichael Mattiello (mcm) <mcm@odoo.com>2020-06-15 13:53:21 +0000
commit4197ebfabc1329110b18aa4972b5317e739d4dc0 (patch)
treea3131e1f6990cbc624c1a3d3438d1a1c21af28c2 /addons
parentbeccf82e09d536255d9d9cb9bfe58ebae2559843 (diff)
[IMP] web: add options to formatFloatTime
This commit adds noLeadingZeroHour option to formatFloatTime. The noLeadingZeroHour option can be used to format the value like 1:30 instead of 01:30 This format behaviour is wanted for fields in web_grid module. Task 2261853 closes odoo/odoo#52217 Related: odoo/enterprise#10870 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Hardik Prajapati <hap@odoo.com> Co-authored-by: Mohammed Shekha <msh@openerp.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/web/static/src/js/fields/field_utils.js10
-rw-r--r--addons/web/static/tests/fields/field_utils_tests.js17
2 files changed, 25 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js
index 76fda4859e6..681a1eb3672 100644
--- a/addons/web/static/src/js/fields/field_utils.js
+++ b/addons/web/static/src/js/fields/field_utils.js
@@ -200,10 +200,16 @@ function formatFloatFactor(value, field, options) {
* instead of 0.25.
*
* @param {float} value
+ * @param {Object} [field]
+ * a description of the field (note: this parameter is ignored)
+ * @param {Object} [options]
+ * @param {boolean} [options.noLeadingZeroHour] if true, format like 1:30
+ * otherwise, format like 01:30
* @returns {string}
*/
-function formatFloatTime(value) {
- var pattern = '%02d:%02d';
+function formatFloatTime(value, field, options) {
+ options = options || {};
+ var pattern = options.noLeadingZeroHour ? '%1d:%02d' : '%02d:%02d';
if (value < 0) {
value = Math.abs(value);
pattern = '-' + pattern;
diff --git a/addons/web/static/tests/fields/field_utils_tests.js b/addons/web/static/tests/fields/field_utils_tests.js
index 1437b6b0506..d25d4610d4d 100644
--- a/addons/web/static/tests/fields/field_utils_tests.js
+++ b/addons/web/static/tests/fields/field_utils_tests.js
@@ -166,6 +166,23 @@ QUnit.test('format percentage', function (assert) {
core._t.database.parameters = originalParameters;
});
+QUnit.test('format float time', function (assert) {
+ assert.expect(7);
+
+ assert.strictEqual(fieldUtils.format.float_time(2), '02:00');
+ assert.strictEqual(fieldUtils.format.float_time(3.5), '03:30');
+ assert.strictEqual(fieldUtils.format.float_time(0.25), '00:15');
+
+ assert.strictEqual(fieldUtils.format.float_time(-0.5), '-00:30');
+
+ const options = {
+ noLeadingZeroHour: true,
+ };
+ assert.strictEqual(fieldUtils.format.float_time(2, null, options), '2:00');
+ assert.strictEqual(fieldUtils.format.float_time(3.5, null, options), '3:30');
+ assert.strictEqual(fieldUtils.format.float_time(-0.5, null, options), '-0:30');
+});
+
QUnit.test('parse float', function(assert) {
assert.expect(10);