3
0
Fork 0

feat: add "complete" (sic) timezone support

at least for now, this is enough to let admin define the global
default timezone for app, and override system local timezone.

eventually should support per-user timezone..some day..
This commit is contained in:
Lance Edgar 2025-12-16 22:52:33 -06:00
parent 286c683c93
commit 7fcb331806
10 changed files with 274 additions and 93 deletions

View file

@ -14,6 +14,7 @@ from paginate_sqlalchemy import SqlalchemyOrmPage
from pyramid import testing
from wuttjamaican.conf import WuttaConfig
from wuttjamaican.util import get_timezone_by_name
from wuttaweb.grids import base as mod
from wuttaweb.grids.filters import (
GridFilter,
@ -1654,16 +1655,21 @@ class TestGrid(WebTestCase):
self.assertEqual(result, "2025-01-13")
def test_render_datetime(self):
grid = self.make_grid(columns=["foo", "bar"])
tzlocal = get_timezone_by_name("America/Los_Angeles")
with patch.object(self.app, "get_timezone", return_value=tzlocal):
grid = self.make_grid(columns=["foo", "bar"])
obj = MagicMock(dt=None)
result = grid.render_datetime(obj, "dt", None)
self.assertEqual(result, "")
# null
obj = MagicMock(dt=None)
result = grid.render_datetime(obj, "dt", None)
self.assertEqual(result, "")
dt = datetime.datetime(2024, 12, 12, 13, 44, tzinfo=datetime.timezone.utc)
obj = MagicMock(dt=dt)
result = grid.render_datetime(obj, "dt", str(dt))
self.assertEqual(result, "2024-12-12 13:44+0000")
# normal (naive utc)
dt = datetime.datetime(2024, 12, 12, 13, 44)
obj = MagicMock(dt=dt)
result = grid.render_datetime(obj, "dt", str(dt))
self.assertEqual(result, "2024-12-12 05:44-0800")
self.assertNotEqual(result, str(dt))
def test_render_vue_tag(self):
grid = self.make_grid(columns=["foo", "bar"])