diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index 3eda2539..72cd8c99 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -195,3 +195,12 @@ async def package_base(request: Request, name: str) -> Response: context["packages"] = pkgbase.packages.all() return render_template(request, "pkgbase.html", context) + + +@router.get("/pkgbase/{name}/voters") +async def package_base_voters(request: Request, name: str) -> Response: + # Get the PackageBase. + pkgbase = get_pkgbase(name) + context = make_context(request, "Voters") + context["pkgbase"] = pkgbase + return render_template(request, "pkgbase/voters.html", context) diff --git a/templates/pkgbase/voters.html b/templates/pkgbase/voters.html new file mode 100644 index 00000000..be86f01f --- /dev/null +++ b/templates/pkgbase/voters.html @@ -0,0 +1,27 @@ +{% extends "partials/layout.html" %} + +{% block pageContent %} +
+

+ {{ "Votes" | tr }} for + + {{ pkgbase.Name }} + +

+ +
+ +
+
+{% endblock %} diff --git a/test/test_packages_routes.py b/test/test_packages_routes.py index fb45af88..2190dc18 100644 --- a/test/test_packages_routes.py +++ b/test/test_packages_routes.py @@ -912,3 +912,21 @@ def test_packages_per_page(client: TestClient, maintainer: User): root = parse_root(response.text) rows = root.xpath('//table[@class="results"]/tbody/tr') assert len(rows) == 250 + + +def test_pkgbase_voters(client: TestClient, maintainer: User, package: Package): + pkgbase = package.PackageBase + endpoint = f"/pkgbase/{pkgbase.Name}/voters" + + now = int(datetime.utcnow().timestamp()) + with db.begin(): + db.create(PackageVote, User=maintainer, PackageBase=pkgbase, + VoteTS=now) + + with client as request: + resp = request.get(endpoint) + assert resp.status_code == int(HTTPStatus.OK) + + root = parse_root(resp.text) + rows = root.xpath('//div[@class="box"]//ul/li') + assert len(rows) == 1