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:
parent
286c683c93
commit
7fcb331806
10 changed files with 274 additions and 93 deletions
|
|
@ -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"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue