From a47c342b9e1af45ba8e00777288c52bdc024298c Mon Sep 17 00:00:00 2001 From: David Monjoie Date: Tue, 14 Mar 2017 11:00:30 +0100 Subject: [ADD] web: add float_time field tests and documentation The functions for parsing and formatting float_time were completely duplicated between field_utils and basic_fields. --- addons/web/static/src/js/fields/basic_fields.js | 44 +++++++++++-------------- 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'addons/web/static/src/js/fields/basic_fields.js') diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 6f182aa90ab..bd2d350385b 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -447,33 +447,29 @@ var FieldFloat = InputField.extend({ var FieldFloatTime = FieldFloat.extend({ supportedFieldTypes: ['float'], + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * Format the float time value into a human-readable time format. + * + * @override + * @private + */ _formatValue: function (value) { - var pattern = '%02d:%02d'; - if (value < 0) { - value = Math.abs(value); - pattern = '-' + pattern; - } - var hour = Math.floor(value); - var min = Math.round((value % 1) * 60); - if (min === 60){ - min = 0; - hour = hour + 1; - } - return _.str.sprintf(pattern, hour, min); + return field_utils.format.float_time(value); }, + + /** + * Parse the human-readable formatted time value into a float. + * + * @override + * @private + */ _parseValue: function (value) { - var factor = 1; - if (value[0] === '-') { - value = value.slice(1); - factor = -1; - } - var float_time_pair = value.split(":"); - if (float_time_pair.length !== 2) { - return factor * field_utils.parse.float(value, this.field); - } - var hours = field_utils.parse.integer(float_time_pair[0]); - var minutes = field_utils.parse.integer(float_time_pair[1]); - return factor * (hours + (minutes / 60)); + return field_utils.parse.float_time(value); }, }); -- cgit v1.2.3