
From: Jayavardhan Katta <jkatta@linux.vnet.ibm.com> This fix provides template and utils methods for the date convertion as per the locale settings from UI login page Signed-off-by: Jayavardhan Katta <jkatta@linux.vnet.ibm.com> --- src/wok/template.py | 26 +++++++++++++++++++++++++- src/wok/utils.py | 10 ++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/wok/template.py b/src/wok/template.py index 43a34db..e8d083e 100644 --- a/src/wok/template.py +++ b/src/wok/template.py @@ -22,10 +22,13 @@ import cherrypy import errno import json +import threading import time +import locale + from Cheetah.Template import Template from glob import iglob - +from contextlib import contextmanager from wok import config as config from wok.config import paths @@ -133,3 +136,24 @@ def render(resource, data): return render_cheetah_file(resource, data) else: raise cherrypy.HTTPError(406) + + +def get_locale(): + cookie = cherrypy.request.cookie + if "wokLocale" in cookie.keys(): + return [cookie["wokLocale"].value] + langs = get_lang() + return langs + + +LOCALE_LOCK = threading.Lock() + + +@contextmanager +def setlocale(name): + with LOCALE_LOCK: + saved = locale.setlocale(locale.LC_TIME) + try: + yield locale.setlocale(locale.LC_TIME, name) + finally: + locale.setlocale(locale.LC_TIME, saved) diff --git a/src/wok/utils.py b/src/wok/utils.py index 9a08001..807893d 100644 --- a/src/wok/utils.py +++ b/src/wok/utils.py @@ -42,6 +42,7 @@ from threading import Timer from wok.config import paths, PluginPaths from wok.exception import InvalidParameter, TimeoutExpired from wok.stringutils import decode_value +from wok.template import get_locale, setlocale wok_log = cherrypy.log.error_log @@ -619,3 +620,12 @@ def upgrade_objectstore_schema(objstore=None, field=None): wok_log.error("Cannot upgrade objectstore schema: %s" % e.args[0]) return False return True + + +def dateNtime_to_locale(dateNtime): + dt = datetime.strptime(dateNtime, "%Y-%m-%d %H:%M:%S") + cokies_locale = get_locale() + cokies_locale = cokies_locale[0].replace("-", "_") + with setlocale(cokies_locale): + dt_locale = (dt.strftime('%c')) + return dt_locale -- 2.7.4