fix: Maintainer, Co-maintainer /package search

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2022-02-05 03:42:43 -08:00
parent 7618101b1b
commit 39d6f927e6
No known key found for this signature in database
GPG key ID: F7E46DED420788F3

View file

@ -130,15 +130,15 @@ class PackageSearch:
def _search_by_co_or_maintainer(self, keywords: str) -> orm.Query:
self._join_user()
exists_subq = db.query(PackageComaintainer).join(User).filter(
and_(PackageComaintainer.PackageBaseID == PackageBase.ID,
User.Username == keywords)
).exists()
self.query = self.query.filter(
or_(and_(User.Username == keywords,
User.ID == PackageBase.MaintainerUID),
db.query(exists_subq).scalar_subquery())
)
user = db.query(User).filter(User.Username == keywords).first()
uid = 0 if not user else user.ID
self.query = self.query.join(
PackageComaintainer,
PackageComaintainer.PackageBaseID == PackageBase.ID,
isouter=True
).filter(or_(PackageComaintainer.UsersID == uid, User.ID == uid))
return self
def _search_by_submitter(self, keywords: str) -> orm.Query: