feat: refactor health endpoint handling and improve job ID display in backtesting

This commit is contained in:
2026-06-04 17:59:41 +02:00
parent 1c2558cfb3
commit a83d231d06
+15 -9
View File
@@ -765,13 +765,7 @@ async def _dashboard_response(
) )
@router.get("/", response_class=HTMLResponse) async def _health_response(request: Request) -> HTMLResponse:
async def home(request: Request) -> HTMLResponse:
return await _dashboard_response(request)
@router.get("/dashboard/health", response_class=HTMLResponse)
async def dashboard_health_page(request: Request) -> HTMLResponse:
return templates.TemplateResponse( return templates.TemplateResponse(
request=request, request=request,
name="health.html", name="health.html",
@@ -779,11 +773,21 @@ async def dashboard_health_page(request: Request) -> HTMLResponse:
) )
@router.get("/", response_class=HTMLResponse)
async def home(request: Request) -> HTMLResponse:
return await _dashboard_response(request)
@router.get("/dashboard", response_class=HTMLResponse) @router.get("/dashboard", response_class=HTMLResponse)
async def dashboard(request: Request) -> HTMLResponse: async def dashboard(request: Request) -> HTMLResponse:
return await _dashboard_response(request) return await _dashboard_response(request)
@router.get("/dashboard/health", response_class=HTMLResponse)
async def dashboard_health_page(request: Request) -> HTMLResponse:
return await _health_response(request)
@router.get("/dashboard/backtesting", response_class=HTMLResponse) @router.get("/dashboard/backtesting", response_class=HTMLResponse)
async def dashboard_backtesting_page(request: Request) -> HTMLResponse: async def dashboard_backtesting_page(request: Request) -> HTMLResponse:
return templates.TemplateResponse( return templates.TemplateResponse(
@@ -959,6 +963,7 @@ async def dashboard_backtesting_run(request: Request) -> HTMLResponse:
store = request.app.state.store store = request.app.state.store
repo = BacktestJobRepository(store) repo = BacktestJobRepository(store)
job = repo.create_job(str(events_path), config_dict) job = repo.create_job(str(events_path), config_dict)
msg_job = job.id[:8] if job.id else "unknown"
queue = request.app.state.backtest_queue queue = request.app.state.backtest_queue
await queue.put((job.id or "", str(events_path), config_dict)) await queue.put((job.id or "", str(events_path), config_dict))
@@ -975,7 +980,7 @@ async def dashboard_backtesting_run(request: Request) -> HTMLResponse:
context = _backtesting_panel_context( context = _backtesting_panel_context(
request, request,
status="submitted", status="submitted",
message=f"Job {job.id[:8]}... queued. Refresh to see results.", message=f"Job {msg_job}... queued. Refresh to see results.",
defaults=defaults, defaults=defaults,
) )
except ValueError as exc: except ValueError as exc:
@@ -1015,10 +1020,11 @@ async def dashboard_backtesting_job_detail(request: Request, job_id: str) -> HTM
report_html = "<div class='meta'>No report yet</div>" report_html = "<div class='meta'>No report yet</div>"
if job.report: if job.report:
i = job.id[:8] if job.id else "unknown"
r = job.report r = job.report
report_html = ( report_html = (
f"<div class='panel'>" f"<div class='panel'>"
f"<div class='label'>Job {job.id[:8]}... Report</div>" f"<div class='label'>Job {i}... Report</div>"
f"<div class='meta'>Status: {job.status}</div>" f"<div class='meta'>Status: {job.status}</div>"
f"<div class='meta'>Events: {job.events_path}</div>" f"<div class='meta'>Events: {job.events_path}</div>"
f"<div class='meta'>Processed: {r.get('processed_events', '')}</div>" f"<div class='meta'>Processed: {r.get('processed_events', '')}</div>"