From 7e89589025252069a4b4a33237f15854fb180dd0 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 19 2016 13:10:04 +0000 Subject: Add the possibility to search issues by milestones --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 9af27ea..5de1cc9 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1646,7 +1646,8 @@ def get_project(session, name, user=None, namespace=None): def search_issues( session, repo, issueid=None, issueuid=None, status=None, closed=False, tags=None, assignee=None, author=None, private=None, - priority=None, count=False, offset=None, limit=None): + priority=None, milestones=None, + count=False, offset=None, limit=None): ''' Retrieve one or more issues associated to a project with the given criterias. @@ -1687,6 +1688,9 @@ def search_issues( :type private: False, None or str :kwarg priority: the priority of the issues to search :type priority: int or None + :kwarg milestones: a milestone the issue(s) returned should be + associated with. + :type milestones: str or list(str) or None :kwarg count: a boolean to specify if the method should return the list of Issues or just do a COUNT query. :type count: boolean @@ -1818,6 +1822,14 @@ def search_issues( ) ) + if milestones is not None and milestones != []: + if isinstance(milestones, basestring): + milestones = [milestones] + + query = query.filter( + model.Issue.milestone.in_(milestones) + ) + query = session.query( model.Issue ).filter(