From 9ff2814789ac2f82939e023ded8661acc71aca01 Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Wed, 28 Feb 2024 16:59:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=20=E2=80=94=20Make=20simpler=20DB?= =?UTF-8?q?=20query=20in=20get=5Fagents=5Fview?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- argos/server/routes/views.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/argos/server/routes/views.py b/argos/server/routes/views.py index 90fa786..c19fb4b 100644 --- a/argos/server/routes/views.py +++ b/argos/server/routes/views.py @@ -5,7 +5,8 @@ from urllib.parse import urlparse from fastapi import APIRouter, Depends, Request from fastapi.templating import Jinja2Templates -from sqlalchemy.orm import Session, aliased +from sqlalchemy import func +from sqlalchemy.orm import Session from argos.schemas import Config from argos.server import queries @@ -144,15 +145,9 @@ async def get_task_results_view( @route.get("/agents") async def get_agents_view(request: Request, db: Session = Depends(get_db)): """Show argos agents and the last time the server saw them""" - t1 = aliased(Result, name="t1") - t2 = aliased(Result, name="t2") - last_seen = ( - db.query(t1) - .outerjoin( - t2, (t1.agent_id == t2.agent_id) & (t1.submitted_at < t2.submitted_at) - ) - .filter(t2.agent_id.is_(None)) + db.query(Result.agent_id, func.max(Result.submitted_at).label('submitted_at')) + .group_by(Result.agent_id) .all() )