diff options
Diffstat (limited to 'addons/website_form/controllers/main.py')
| -rw-r--r-- | addons/website_form/controllers/main.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/addons/website_form/controllers/main.py b/addons/website_form/controllers/main.py index f2f0cc806ef..be1bf5aa53a 100644 --- a/addons/website_form/controllers/main.py +++ b/addons/website_form/controllers/main.py @@ -2,9 +2,12 @@ import base64 import json +import pytz +from datetime import datetime from psycopg2 import IntegrityError from openerp import http, SUPERUSER_ID from openerp.http import request +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT from openerp.tools.translate import _ from openerp.exceptions import ValidationError from openerp.addons.base.ir.ir_qweb import nl2br @@ -60,6 +63,17 @@ 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()) @@ -73,7 +87,8 @@ class WebsiteForm(http.Controller): 'char': identity, 'text': identity, 'html': identity, - 'datetime': identity, + 'date': date, + 'datetime': datetime, 'many2one': integer, 'one2many': one2many, 'many2many':many2many, |
