fix: 日志查询时间列显示本地时间而不是 raw unix timestamp
根因: logs_view 持久化分支直接用 query_logs 返回的 dict list 当模板变量,但模板里 e.timestamp_local 是 LogEntry 类 的属性。普通 dict 没有这个属性,Jinja 的 if 条件里抛 UndefinedError 后静默走 else e.time 分支,显示原始 float 时间戳 1784184579.49。 修法: 在持久化分支把 page_items 包成 LogEntry 实例 (用 **r 展开),让 timestamp_local property 生效。 非持久化分支没这个问题,因为 get_parsed_logs() 内部 已经做了 LogEntry(**r) wrap。
This commit is contained in:
@@ -986,8 +986,11 @@ def logs_view():
|
|||||||
"limit": per_page,
|
"limit": per_page,
|
||||||
"offset": (page - 1) * per_page,
|
"offset": (page - 1) * per_page,
|
||||||
})
|
})
|
||||||
|
# Wrap as LogEntry so the template's e.timestamp_local property
|
||||||
|
# works (query_logs returns plain dicts, which would otherwise
|
||||||
|
# silently fall through to the e.time branch in Jinja).
|
||||||
|
entries = [log_parser.LogEntry(**r) for r in page_items]
|
||||||
# query_logs returns newest-first, so no re-reverse needed
|
# query_logs returns newest-first, so no re-reverse needed
|
||||||
entries = page_items
|
|
||||||
else:
|
else:
|
||||||
entries = get_parsed_logs()
|
entries = get_parsed_logs()
|
||||||
f = dict(base_filters)
|
f = dict(base_filters)
|
||||||
|
|||||||
Reference in New Issue
Block a user