From ab06ebf053c3f7c9ebc9ce5fd767a0abffddc351 Mon Sep 17 00:00:00 2001 From: ale-rt Date: Fri, 14 Jul 2023 16:36:42 +0200 Subject: [PATCH] The dates are returned naive, localize them with the proper timezone --- src/euphorie/client/adapters/history_item.py | 8 ++++++++ src/euphorie/client/model.py | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/euphorie/client/adapters/history_item.py b/src/euphorie/client/adapters/history_item.py index 9d40c4222..765d90c3b 100644 --- a/src/euphorie/client/adapters/history_item.py +++ b/src/euphorie/client/adapters/history_item.py @@ -1,5 +1,6 @@ from euphorie.client import MessageFactory as _ from euphorie.client.model import SessionEvent +from euphorie.client.model import show_timezone from euphorie.client.model import SurveySession from json import JSONDecodeError from json import loads @@ -79,6 +80,13 @@ def note(self): ) return {} + @property + def raw_time(self): + """The dates are returned naive, localize them with the proper timezone""" + time = getattr(self.context, self.time_attribute) + timezone = show_timezone() + return timezone.localize(time) + def session_url(self): session = self.context.session return "{tool_url}/++session++{session_id}".format( diff --git a/src/euphorie/client/model.py b/src/euphorie/client/model.py index 88c8f4538..556e7f5b9 100644 --- a/src/euphorie/client/model.py +++ b/src/euphorie/client/model.py @@ -46,6 +46,7 @@ import datetime import logging import OFS.Traversable +import pytz import random import re @@ -1982,6 +1983,12 @@ def __call__(self): return self.request.response.redirect(target) +@ram.cache(lambda _: "show_timezone_cache_key") +def show_timezone(): + timezone = Session.execute("SHOW TIMEZONE").first() + return pytz.timezone(timezone[0]) + + __all__ = [ "SurveySession", "Module",