From aa40e111fa9197f5fd09b2bc978fb3e4049648e7 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 12 May 2011 12:36:01 +0200 Subject: [PATCH] [FIX] Fixed date & datetime widgets. Using dates.js bzr revid: fme@openerp.com-20110512103601-vbfa5or1kydajlmh --- addons/base/static/src/js/form.js | 46 ++++++++++++++++++----------- addons/base/static/src/xml/base.xml | 7 ----- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index bbcee8f363e..b4e9e0cbc33 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -679,33 +679,43 @@ openerp.base.form.FieldFloat = openerp.base.form.FieldChar.extend({ } }); -openerp.base.form.FieldDate = openerp.base.form.FieldChar.extend({ +openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldDate"; - this.validation_regex = /^\d+-\d+-\d+$/; + this.jqueryui_object = 'datetimepicker'; }, start: function() { this._super.apply(this, arguments); - this.$element.find('input').change(this.on_ui_change).datepicker({ - dateFormat: 'yy-mm-dd' - }); - } -}); - -openerp.base.form.FieldDatetime = openerp.base.form.FieldChar.extend({ - init: function(view, node) { - this._super(view, node); - this.template = "FieldDatetime"; - this.validation_regex = /^\d+-\d+-\d+( \d+:\d+(:\d+)?)?$/; - }, - start: function() { - this._super.apply(this, arguments); - this.$element.find('input').change(this.on_ui_change).datetimepicker({ + this.$element.find('input').change(this.on_ui_change)[this.jqueryui_object]({ dateFormat: 'yy-mm-dd', timeFormat: 'hh:mm:ss' }); - } + }, + set_value: function(value) { + this._super.apply(this, arguments); + if (value == null || value == false) { + this.$element.find('input').val(''); + } else { + this.value = this.format(value); + this.$element.find('input')[this.jqueryui_object]('setDate', this.value); + } + }, + set_value_from_ui: function() { + this.value = this.$element.find('input')[this.jqueryui_object]('getDate') || false; + }, + validate: function() { + this.invalid = this.required && this.value === false; + }, + format: openerp.base.parse_datetime +}); + +openerp.base.form.FieldDate = openerp.base.form.FieldDatetime.extend({ + init: function(view, node) { + this._super(view, node); + this.jqueryui_object = 'datepicker'; + }, + format: openerp.base.parse_date }); openerp.base.form.FieldText = openerp.base.form.Field.extend({ diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index ade8260496c..612186d9b66 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -318,13 +318,6 @@ t-att-class="'field_' + widget.type" /> - - -