From e357e267351b5a4c702cccebf4858327712984e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Wed, 1 Mar 2017 12:41:30 +0100 Subject: [PATCH] [FIX] web: fix FieldDate widget default value The FieldDate widget did not properly select the correct default value when opening the datepicker. We did not notice it, because the test hardcoded the february month. --- addons/web/static/src/js/fields/basic_fields.js | 5 +++-- addons/web/static/src/js/widgets/date_picker.js | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index dcb65317edb..af2fdb50349 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -162,11 +162,12 @@ var FieldDate = InputField.extend({ //-------------------------------------------------------------------------- _makeDatePicker: function () { - return new datepicker.DateWidget(this); + return new datepicker.DateWidget(this, {defaultDate: this.value}); }, _renderEdit: function () { this.datewidget.set_value(this.value); }, + }); var FieldDateTime = FieldDate.extend({ @@ -177,7 +178,7 @@ var FieldDateTime = FieldDate.extend({ //-------------------------------------------------------------------------- _makeDatePicker: function () { - return new datepicker.DateTimeWidget(this); + return new datepicker.DateTimeWidget(this, {defaultDate: this.value}); }, }); diff --git a/addons/web/static/src/js/widgets/date_picker.js b/addons/web/static/src/js/widgets/date_picker.js index 1acccc61a5e..3e4a0f4382f 100644 --- a/addons/web/static/src/js/widgets/date_picker.js +++ b/addons/web/static/src/js/widgets/date_picker.js @@ -50,13 +50,14 @@ var DateWidget = Widget.extend({ this.picker = this.$input.data('DateTimePicker'); this.$input.click(this.picker.toggle.bind(this.picker)); this.set_readonly(false); - this.set_value(false); }, set_value: function(value) { this.set({'value': value}); var formatted_value = value ? this.format_client(value) : null; this.$input.val(formatted_value); - this.picker.date(formatted_value); + if (this.picker) { + this.picker.date(formatted_value); + } }, get_value: function() { return this.get('value');