3
0
Fork 0

fix: fallback to dict logic for grid render date/time

This commit is contained in:
Lance Edgar 2026-02-04 08:48:53 -06:00
parent 4ac40a835b
commit d9b880248c
2 changed files with 21 additions and 2 deletions

View file

@ -2030,7 +2030,10 @@ class Grid: # pylint: disable=too-many-instance-attributes,too-many-public-meth
grid.set_renderer('foo', 'date')
"""
try:
dt = getattr(obj, key)
except AttributeError:
dt = obj[key]
return self.app.render_date(dt)
def render_datetime(self, obj, key, value): # pylint: disable=unused-argument
@ -2046,7 +2049,10 @@ class Grid: # pylint: disable=too-many-instance-attributes,too-many-public-meth
grid.set_renderer('foo', 'datetime')
"""
try:
dt = getattr(obj, key)
except AttributeError:
dt = obj[key]
return self.app.render_datetime(dt, html=True)
def render_enum(self, obj, key, value, enum=None):

View file

@ -1682,6 +1682,12 @@ class TestGrid(WebTestCase):
result = grid.render_date(obj, "dt", str(dt))
self.assertEqual(result, "2025-01-13")
# object as dict
dt = datetime.date(2025, 1, 13)
obj = {"dt": dt}
result = grid.render_date(obj, "dt", str(dt))
self.assertEqual(result, "2025-01-13")
def test_render_datetime(self):
tzlocal = get_timezone_by_name("America/Los_Angeles")
with patch.object(self.app, "get_timezone", return_value=tzlocal):
@ -1699,6 +1705,13 @@ class TestGrid(WebTestCase):
self.assertTrue(result.startswith('<span title="'))
self.assertIn("2024-12-12 05:44-0800", result)
# object as dict
dt = datetime.datetime(2024, 12, 12, 13, 44)
obj = {"dt": dt}
result = grid.render_datetime(obj, "dt", str(dt))
self.assertTrue(result.startswith('<span title="'))
self.assertIn("2024-12-12 05:44-0800", result)
def test_render_vue_tag(self):
grid = self.make_grid(columns=["foo", "bar"])
html = grid.render_vue_tag()