mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
feat(FastAPI): add /pkgbase/{name}/voters (get)
Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
836af2d588
commit
fbd91f346a
3 changed files with 54 additions and 0 deletions
|
@ -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)
|
||||
|
|
27
templates/pkgbase/voters.html
Normal file
27
templates/pkgbase/voters.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
{% extends "partials/layout.html" %}
|
||||
|
||||
{% block pageContent %}
|
||||
<div class="box">
|
||||
<h2>
|
||||
{{ "Votes" | tr }} for
|
||||
<a href="/pkgbase/{{ pkgbase.Name }}">
|
||||
{{ pkgbase.Name }}
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<div class="boxbody">
|
||||
<ul>
|
||||
{% for pkg_vote in pkgbase.package_votes %}
|
||||
<li>
|
||||
<a href="/account/{{ pkg_vote.User.Username }}">
|
||||
{{ pkg_vote.User.Username }}
|
||||
</a>
|
||||
|
||||
{% set voted_at = pkg_vote.VoteTS | dt | as_timezone(timezone) %}
|
||||
({{ voted_at.strftime("%Y-%m-%d %H:%M") }})
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue