mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
partials/packages/details.html: Add package request count
This was missed during the original implementation merge. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
45fbf214b4
commit
55c29c4519
3 changed files with 57 additions and 1 deletions
|
@ -17,6 +17,7 @@ from aurweb.models.package_dependency import PackageDependency
|
|||
from aurweb.models.package_license import PackageLicense
|
||||
from aurweb.models.package_notification import PackageNotification
|
||||
from aurweb.models.package_relation import PackageRelation
|
||||
from aurweb.models.package_request import PackageRequest
|
||||
from aurweb.models.package_source import PackageSource
|
||||
from aurweb.models.package_vote import PackageVote
|
||||
from aurweb.models.relation_type import CONFLICTS_ID
|
||||
|
@ -54,6 +55,10 @@ async def make_single_context(request: Request,
|
|||
context["voted"] = request.user.package_votes.filter(
|
||||
PackageVote.PackageBaseID == pkgbase.ID).scalar()
|
||||
|
||||
context["requests"] = pkgbase.requests.filter(
|
||||
PackageRequest.ClosedTS.is_(None)
|
||||
).count()
|
||||
|
||||
return context
|
||||
|
||||
|
||||
|
|
|
@ -124,7 +124,13 @@
|
|||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li><span class="flagged"></span></li>
|
||||
{% if requests %}
|
||||
<li>
|
||||
<span class="flagged">
|
||||
{{ requests | tn("%d pending request", "%d pending requests") | format(requests) }}
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li>
|
||||
{% if not request.user.is_authenticated() %}
|
||||
<a href="/login?next={{ '/pkgbase/%s/request' | format(result.Name) | urlencode }}">
|
||||
|
|
|
@ -15,7 +15,9 @@ from aurweb.models.package_comment import PackageComment
|
|||
from aurweb.models.package_dependency import PackageDependency
|
||||
from aurweb.models.package_keyword import PackageKeyword
|
||||
from aurweb.models.package_relation import PackageRelation
|
||||
from aurweb.models.package_request import PackageRequest
|
||||
from aurweb.models.relation_type import PROVIDES_ID, RelationType
|
||||
from aurweb.models.request_type import DELETION_ID, RequestType
|
||||
from aurweb.models.user import User
|
||||
from aurweb.testing import setup_test_db
|
||||
from aurweb.testing.html import parse_root
|
||||
|
@ -173,6 +175,43 @@ def test_package_comments(client: TestClient, user: User, package: Package):
|
|||
assert comments[i].strip() == row
|
||||
|
||||
|
||||
def test_package_requests_display(client: TestClient, user: User,
|
||||
package: Package):
|
||||
type_ = db.query(RequestType, RequestType.ID == DELETION_ID).first()
|
||||
db.create(PackageRequest, PackageBase=package.PackageBase,
|
||||
PackageBaseName=package.PackageBase.Name,
|
||||
User=user, RequestType=type_,
|
||||
Comments="Test comment.",
|
||||
ClosureComment=str())
|
||||
|
||||
# Test that a single request displays "1 pending request".
|
||||
with client as request:
|
||||
resp = request.get(package_endpoint(package))
|
||||
assert resp.status_code == int(HTTPStatus.OK)
|
||||
|
||||
root = parse_root(resp.text)
|
||||
selector = '//div[@id="actionlist"]/ul/li/span[@class="flagged"]'
|
||||
target = root.xpath(selector)[0]
|
||||
assert target.text.strip() == "1 pending request"
|
||||
|
||||
type_ = db.query(RequestType, RequestType.ID == DELETION_ID).first()
|
||||
db.create(PackageRequest, PackageBase=package.PackageBase,
|
||||
PackageBaseName=package.PackageBase.Name,
|
||||
User=user, RequestType=type_,
|
||||
Comments="Test comment2.",
|
||||
ClosureComment=str())
|
||||
|
||||
# Test that a two requests display "2 pending requests".
|
||||
with client as request:
|
||||
resp = request.get(package_endpoint(package))
|
||||
assert resp.status_code == int(HTTPStatus.OK)
|
||||
|
||||
root = parse_root(resp.text)
|
||||
selector = '//div[@id="actionlist"]/ul/li/span[@class="flagged"]'
|
||||
target = root.xpath(selector)[0]
|
||||
assert target.text.strip() == "2 pending requests"
|
||||
|
||||
|
||||
def test_package_authenticated(client: TestClient, user: User,
|
||||
package: Package):
|
||||
""" We get the same here for either authenticated or not
|
||||
|
@ -196,6 +235,12 @@ def test_package_authenticated(client: TestClient, user: User,
|
|||
for expected_text in expected:
|
||||
assert expected_text in resp.text
|
||||
|
||||
# When no requests are up, make sure we don't see the display for them.
|
||||
root = parse_root(resp.text)
|
||||
selector = '//div[@id="actionlist"]/ul/li/span[@class="flagged"]'
|
||||
target = root.xpath(selector)
|
||||
assert len(target) == 0
|
||||
|
||||
|
||||
def test_package_authenticated_maintainer(client: TestClient,
|
||||
maintainer: User,
|
||||
|
|
Loading…
Add table
Reference in a new issue