diff options
| author | David Monjoie <dmo@odoo.com> | 2017-03-14 11:00:30 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2017-04-11 19:44:38 +0200 |
| commit | a47c342b9e1af45ba8e00777288c52bdc024298c (patch) | |
| tree | e1675ef8d9a5e0e6f12927274b3b4493f7198042 /addons/web/static/src/js/fields | |
| parent | c22b85dd7355ebea052b8109d9fc45b542dd559a (diff) | |
[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.
Diffstat (limited to 'addons/web/static/src/js/fields')
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 44 |
1 files changed, 20 insertions, 24 deletions
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); }, }); |
