summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/basic_fields.js
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-03-14 11:00:30 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commita47c342b9e1af45ba8e00777288c52bdc024298c (patch)
treee1675ef8d9a5e0e6f12927274b3b4493f7198042 /addons/web/static/src/js/fields/basic_fields.js
parentc22b85dd7355ebea052b8109d9fc45b542dd559a (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/basic_fields.js')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js44
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);
},
});