From 5c179dc4d35b8c2bbacce61d0664fc7285d99e56 Mon Sep 17 00:00:00 2001 From: Steven Guikal Date: Mon, 4 Oct 2021 17:04:23 -0400 Subject: [PATCH] fix(FastAPI): use consistent ordering on dashboard and request page Signed-off-by: Steven Guikal --- aurweb/routers/html.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/aurweb/routers/html.py b/aurweb/routers/html.py index 3d44cf87..6e7697e4 100644 --- a/aurweb/routers/html.py +++ b/aurweb/routers/html.py @@ -6,7 +6,7 @@ from http import HTTPStatus from fastapi import APIRouter, Form, HTTPException, Request from fastapi.responses import HTMLResponse, RedirectResponse -from sqlalchemy import and_, or_ +from sqlalchemy import and_, case, or_ import aurweb.config import aurweb.models.package_request @@ -17,7 +17,7 @@ from aurweb.models.account_type import TRUSTED_USER_AND_DEV_ID, TRUSTED_USER_ID from aurweb.models.package import Package from aurweb.models.package_base import PackageBase from aurweb.models.package_comaintainer import PackageComaintainer -from aurweb.models.package_request import PackageRequest +from aurweb.models.package_request import PENDING_ID, PackageRequest from aurweb.models.user import User from aurweb.packages.util import query_notified, query_voted, updated_packages from aurweb.templates import make_context, render_template @@ -166,6 +166,11 @@ async def index(request: Request): # Package requests created by request.user. context["package_requests"] = request.user.package_requests.filter( PackageRequest.RequestTS >= start + ).order_by( + # Order primarily by the Status column being PENDING_ID, + # and secondarily by RequestTS; both in descending order. + case([(PackageRequest.Status == PENDING_ID, 1)], else_=0).desc(), + PackageRequest.RequestTS.desc() ).limit(50).all() # Packages that the request user maintains or comaintains.