From 9953756a6b7eb70f07c7b31ef042efcb49433de7 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jul 10 2015 12:46:59 +0000 Subject: Expand the search_projects method to allow filtering projects by their tag --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 4926dc1..92200d2 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1172,7 +1172,7 @@ def fork_project(session, user, repo, gitfolder, def search_projects( - session, username=None, fork=None, + session, username=None, fork=None, tags=None, start=None, limit=None, count=False): '''List existing projects ''' @@ -1236,6 +1236,16 @@ def search_projects( model.Project.parent_id == None ) + if tags is not None: + if not isinstance(tags, (list, tuple)): + tags = [tags] + + projects = projects.filter( + model.Project.id == model.TagProject.project_id + ).filter( + model.TagProject.tag.in_(tags) + ) + query = session.query( model.Project ).filter(