diff --git a/aurweb/packages/search.py b/aurweb/packages/search.py index 60a5547e..01b0e154 100644 --- a/aurweb/packages/search.py +++ b/aurweb/packages/search.py @@ -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: