summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/website_form/controllers/main.py15
-rw-r--r--addons/website_form/static/src/snippets/s_website_form/000.js12
2 files changed, 14 insertions, 13 deletions
diff --git a/addons/website_form/controllers/main.py b/addons/website_form/controllers/main.py
index 4c13c374d26..3a07fee8c57 100644
--- a/addons/website_form/controllers/main.py
+++ b/addons/website_form/controllers/main.py
@@ -84,17 +84,6 @@ class WebsiteForm(http.Controller):
def boolean(self, field_label, field_input):
return bool(field_input)
- def date(self, field_label, field_input):
- lang = request.env['ir.qweb.field'].user_lang()
- return datetime.strptime(field_input, lang.date_format).strftime(DEFAULT_SERVER_DATE_FORMAT)
-
- def datetime(self, field_label, field_input):
- lang = request.env['ir.qweb.field'].user_lang()
- strftime_format = (u"%s %s" % (lang.date_format, lang.time_format))
- user_tz = pytz.timezone(request.context.get('tz') or request.env.user.tz or 'UTC')
- dt = user_tz.localize(datetime.strptime(field_input, strftime_format)).astimezone(pytz.utc)
- return dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
-
def binary(self, field_label, field_input):
return base64.b64encode(field_input.read())
@@ -108,8 +97,8 @@ class WebsiteForm(http.Controller):
'char': identity,
'text': identity,
'html': identity,
- 'date': date,
- 'datetime': datetime,
+ 'date': identity,
+ 'datetime': identity,
'many2one': integer,
'one2many': one2many,
'many2many':many2many,
diff --git a/addons/website_form/static/src/snippets/s_website_form/000.js b/addons/website_form/static/src/snippets/s_website_form/000.js
index b2f0f3370b4..573656d5b92 100644
--- a/addons/website_form/static/src/snippets/s_website_form/000.js
+++ b/addons/website_form/static/src/snippets/s_website_form/000.js
@@ -141,6 +141,18 @@ odoo.define('website_form.s_website_form', function (require) {
}
});
+ // force server date format usage for existing fields
+ this.$target.find('.s_website_form_field:not(.s_website_form_custom)')
+ .find('.s_website_form_date, .s_website_form_datetime').each(function () {
+ var date = $(this).datetimepicker('viewDate').clone().locale('en');
+ var format = 'YYYY-MM-DD';
+ if ($(this).hasClass('s_website_form_datetime')) {
+ date = date.utc();
+ format = 'YYYY-MM-DD HH:mm:ss';
+ }
+ form_values[$(this).find('input').attr('name')] = date.format(format);
+ });
+
const tokenObj = await this._recaptcha.getToken('website_form');
if (tokenObj.token) {
form_values['recaptcha_token_response'] = tokenObj.token;