fix(diarization-ui): show runtime counter in server-rendered jobs fallback
This commit is contained in:
20
app.py
20
app.py
@@ -728,6 +728,24 @@ def prompt_delete(prompt_id: int):
|
|||||||
return HTMLResponse("<meta http-equiv='refresh' content='0; url=/prompts'>")
|
return HTMLResponse("<meta http-equiv='refresh' content='0; url=/prompts'>")
|
||||||
|
|
||||||
|
|
||||||
|
def _fmt_elapsed(start_iso: Optional[str], end_iso: Optional[str] = None) -> str:
|
||||||
|
if not start_iso:
|
||||||
|
return "-"
|
||||||
|
try:
|
||||||
|
s = datetime.fromisoformat(start_iso)
|
||||||
|
e = datetime.fromisoformat(end_iso) if end_iso else datetime.now()
|
||||||
|
sec = max(0, int((e - s).total_seconds()))
|
||||||
|
if sec < 60:
|
||||||
|
return f"{sec}s"
|
||||||
|
m, s2 = divmod(sec, 60)
|
||||||
|
if m < 60:
|
||||||
|
return f"{m}m {s2}s"
|
||||||
|
h, m2 = divmod(m, 60)
|
||||||
|
return f"{h}h {m2}m"
|
||||||
|
except Exception:
|
||||||
|
return "-"
|
||||||
|
|
||||||
|
|
||||||
def _jobs_payload(limit: int = 200):
|
def _jobs_payload(limit: int = 200):
|
||||||
with db() as c:
|
with db() as c:
|
||||||
jobs = c.execute(
|
jobs = c.execute(
|
||||||
@@ -783,7 +801,7 @@ def jobs_page(queued: Optional[int] = None):
|
|||||||
items = _jobs_payload(200)
|
items = _jobs_payload(200)
|
||||||
pre = "".join([
|
pre = "".join([
|
||||||
(
|
(
|
||||||
f"<div class='card'><b>Job #{it['id']}</b> [{it['kind']}] · <b>{it['status']}</b><br>"
|
f"<div class='card'><b>Job #{it['id']}</b> [{it['kind']}] · <b>{it['status']}</b> · läuft: {_fmt_elapsed(it.get('started_at') or it.get('created_at'), it.get('finished_at'))}<br>"
|
||||||
f"<small>{it['created_at']}</small><br>"
|
f"<small>{it['created_at']}</small><br>"
|
||||||
f"<div class='row' style='margin-top:8px'>"
|
f"<div class='row' style='margin-top:8px'>"
|
||||||
+ (
|
+ (
|
||||||
|
|||||||
Reference in New Issue
Block a user