feat: execution failure reports, auto-printer for WMT, UTC timezone fix for all timestamps

This commit is contained in:
ske087
2026-04-24 15:52:12 +03:00
parent d2485e4c66
commit 056f467791
27 changed files with 1391 additions and 285 deletions

View File

@@ -29,6 +29,9 @@ def create_app(config_name=None):
# Register blueprints
_register_blueprints(app)
# Register template filters
_register_template_filters(app)
# Register error handlers
_register_error_handlers(app)
@@ -104,6 +107,28 @@ def _register_blueprints(app):
from app.api.logs import submit_log
return submit_log()
def _register_template_filters(app):
"""Register custom Jinja2 template filters."""
import calendar
from datetime import datetime as _dt
@app.template_filter('local_dt')
def local_dt_filter(value, fmt='%Y-%m-%d %H:%M'):
"""Convert a naive UTC datetime to server local time and format it.
Usage: {{ some_utc_datetime | local_dt }}
{{ some_utc_datetime | local_dt('%Y-%m-%d %H:%M:%S') }}
"""
if value is None:
return None
try:
# calendar.timegm treats the timetuple as UTC → returns POSIX timestamp
# datetime.fromtimestamp then converts to local time using the system timezone
ts = calendar.timegm(value.timetuple())
return _dt.fromtimestamp(ts).strftime(fmt)
except Exception:
return value.strftime(fmt)
def _register_error_handlers(app):
"""Register error handlers"""