From fa7e4cf9642abb23db89e2f38882afdd54061ae6 Mon Sep 17 00:00:00 2001 From: “AnjaliPardeshi” <“anjalipardeshi92@gmail.com”> Date: Oct 07 2016 21:01:48 +0000 Subject: Searches given word in title of issues. Changes according to pep8 Docstring added for search pattern and pep8 changes search bar and button added to input-group --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index c5d0b70..0540e8b 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1679,12 +1679,11 @@ def get_project(session, name, user=None, namespace=None): return query.first() - def search_issues( session, repo, issueid=None, issueuid=None, status=None, closed=False, tags=None, assignee=None, author=None, private=None, - priority=None, milestones=None, - count=False, offset=None, limit=None): + priority=None, milestones=None, count=False, offset=None, + limit=None, search_pattern=None): ''' Retrieve one or more issues associated to a project with the given criterias. @@ -1731,6 +1730,8 @@ def search_issues( :kwarg count: a boolean to specify if the method should return the list of Issues or just do a COUNT query. :type count: boolean + :kwarg search_pattern: a string to search in issues title + :type search_pattern: str or None :return: A single Issue object if issueid is specified, a list of Project objects otherwise. @@ -1875,6 +1876,15 @@ def search_issues( model.Issue.project_id == repo.id ) + if search_pattern is not None: + query = session.query( + model.Issue + ).filter( + model.Issue.title.like('%' + str(search_pattern) + '%') + ).filter( + model.Issue.project_id == repo.id + ) + query = query.order_by( model.Issue.date_created.desc() ) diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html index ec07685..7efe051 100644 --- a/pagure/templates/issues.html +++ b/pagure/templates/issues.html @@ -121,6 +121,17 @@ {{ tag.tag }} {% endfor %} + +
+
+ + + + +
+
+
diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index 85fb951..1ab47b6 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -435,6 +435,7 @@ def view_issues(repo, username=None, namespace=None): tags = [tag.strip() for tag in tags if tag.strip()] assignee = flask.request.args.get('assignee', None) author = flask.request.args.get('author', None) + search_pattern = flask.request.args.get('search_pattern', None) repo = flask.g.repo @@ -472,6 +473,7 @@ def view_issues(repo, username=None, namespace=None): priority=priority, offset=flask.g.offset, limit=flask.g.limit, + search_pattern=search_pattern, ) issues_cnt = pagure.lib.search_issues( SESSION, @@ -495,12 +497,14 @@ def view_issues(repo, username=None, namespace=None): private=private, priority=priority, count=True, + search_pattern=search_pattern, ) else: issues = pagure.lib.search_issues( SESSION, repo, tags=tags, assignee=assignee, author=author, private=private, priority=priority, offset=flask.g.offset, limit=flask.g.limit, + search_pattern=search_pattern, ) issues_cnt = pagure.lib.search_issues( SESSION, repo, tags=tags, assignee=assignee,