summaryrefslogtreecommitdiff
path: root/addons/website_form/controllers/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_form/controllers/main.py')
-rw-r--r--addons/website_form/controllers/main.py17
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,