feat: add field "CoMaintainers" to metadata-archives

This commit is contained in:
Mario Oenning 2022-10-31 09:42:56 +00:00 committed by Leonidas Spyropoulos
parent 333051ab1f
commit 6ee34ab3cb
2 changed files with 18 additions and 0 deletions

View file

@ -142,6 +142,21 @@ def get_extended_fields():
) )
.distinct() .distinct()
.order_by("Name"), .order_by("Name"),
# Co-Maintainer
db.query(models.PackageComaintainer)
.join(models.User, models.User.ID == models.PackageComaintainer.UsersID)
.join(
models.Package,
models.Package.PackageBaseID == models.PackageComaintainer.PackageBaseID,
)
.with_entities(
models.Package.ID,
literal("CoMaintainers").label("Type"),
models.User.Username.label("Name"),
literal(str()).label("Cond"),
)
.distinct()
.order_by("Name"),
] ]
query = subqueries[0].union_all(*subqueries[1:]) query = subqueries[0].union_all(*subqueries[1:])
return get_extended_dict(query) return get_extended_dict(query)

View file

@ -11,6 +11,7 @@ from aurweb.models import (
License, License,
Package, Package,
PackageBase, PackageBase,
PackageComaintainer,
PackageDependency, PackageDependency,
PackageLicense, PackageLicense,
User, User,
@ -79,6 +80,7 @@ def packages(user: User) -> list[Package]:
DepName=f"dep_{i}", DepName=f"dep_{i}",
DepCondition=">=1.0", DepCondition=">=1.0",
) )
db.create(PackageComaintainer, User=user, PackageBase=pkgbase, Priority=1)
# Add the package to our output list. # Add the package to our output list.
output.append(pkg) output.append(pkg)
@ -229,6 +231,7 @@ def test_mkpkglists_extended(config_mock: None, user: User, packages: list[Packa
assert key in pkg, f"{pkg=} record does not have {key=}" assert key in pkg, f"{pkg=} record does not have {key=}"
assert isinstance(pkg["Depends"], list) assert isinstance(pkg["Depends"], list)
assert isinstance(pkg["License"], list) assert isinstance(pkg["License"], list)
assert isinstance(pkg["CoMaintainers"], list)
for file in (PACKAGES, PKGBASE, USERS, META, META_EXT): for file in (PACKAGES, PKGBASE, USERS, META, META_EXT):
with open(f"{file}.sha256") as f: with open(f"{file}.sha256") as f: