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_license import PackageLicense
|
||||||
from aurweb.models.package_notification import PackageNotification
|
from aurweb.models.package_notification import PackageNotification
|
||||||
from aurweb.models.package_relation import PackageRelation
|
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_source import PackageSource
|
||||||
from aurweb.models.package_vote import PackageVote
|
from aurweb.models.package_vote import PackageVote
|
||||||
from aurweb.models.relation_type import CONFLICTS_ID
|
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(
|
context["voted"] = request.user.package_votes.filter(
|
||||||
PackageVote.PackageBaseID == pkgbase.ID).scalar()
|
PackageVote.PackageBaseID == pkgbase.ID).scalar()
|
||||||
|
|
||||||
|
context["requests"] = pkgbase.requests.filter(
|
||||||
|
PackageRequest.ClosedTS.is_(None)
|
||||||
|
).count()
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,13 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% 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>
|
<li>
|
||||||
{% if not request.user.is_authenticated() %}
|
{% if not request.user.is_authenticated() %}
|
||||||
<a href="/login?next={{ '/pkgbase/%s/request' | format(result.Name) | urlencode }}">
|
<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_dependency import PackageDependency
|
||||||
from aurweb.models.package_keyword import PackageKeyword
|
from aurweb.models.package_keyword import PackageKeyword
|
||||||
from aurweb.models.package_relation import PackageRelation
|
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.relation_type import PROVIDES_ID, RelationType
|
||||||
|
from aurweb.models.request_type import DELETION_ID, RequestType
|
||||||
from aurweb.models.user import User
|
from aurweb.models.user import User
|
||||||
from aurweb.testing import setup_test_db
|
from aurweb.testing import setup_test_db
|
||||||
from aurweb.testing.html import parse_root
|
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
|
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,
|
def test_package_authenticated(client: TestClient, user: User,
|
||||||
package: Package):
|
package: Package):
|
||||||
""" We get the same here for either authenticated or not
|
""" 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:
|
for expected_text in expected:
|
||||||
assert expected_text in resp.text
|
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,
|
def test_package_authenticated_maintainer(client: TestClient,
|
||||||
maintainer: User,
|
maintainer: User,
|
||||||
|
|
Loading…
Add table
Reference in a new issue