diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-22 18:06:00 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-22 18:06:00 +0000 |
commit | ea4762d464bb36f3e36e318db47086e41f493377 (patch) | |
tree | c2fb2b7d2eb2b775d9ab149dc3781975fcc4b7d5 /app/finders/issuable_finder.rb | |
parent | 68b6846fa6c7b630cc8dab7a8474dcc34e4d67d4 (diff) | |
download | gitlab-ce-ea4762d464bb36f3e36e318db47086e41f493377.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders/issuable_finder.rb')
-rw-r--r-- | app/finders/issuable_finder.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index dfddd32d7df..e3ea81d5564 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -13,6 +13,7 @@ # group_id: integer # project_id: integer # milestone_title: string +# release_tag: string # author_id: integer # author_username: string # assignee_id: integer or 'None' or 'Any' @@ -59,6 +60,7 @@ class IssuableFinder author_username label_name milestone_title + release_tag my_reaction_emoji search in @@ -126,6 +128,7 @@ class IssuableFinder items = by_non_archived(items) items = by_iids(items) items = by_milestone(items) + items = by_release(items) items = by_label(items) by_my_reaction_emoji(items) end @@ -364,6 +367,10 @@ class IssuableFinder end end + def releases? + params[:release_tag].present? + end + private def force_cte? @@ -570,6 +577,18 @@ class IssuableFinder end # rubocop: enable CodeReuse/ActiveRecord + def by_release(items) + return items unless releases? + + if filter_by_no_release? + items.without_release + elsif filter_by_any_release? + items.any_release + else + items.with_release(params[:release_tag], params[:project_id]) + end + end + def filter_by_no_milestone? # Accepts `No Milestone` for compatibility params[:milestone_title].to_s.downcase == FILTER_NONE || params[:milestone_title] == Milestone::None.title @@ -588,6 +607,14 @@ class IssuableFinder params[:milestone_title] == Milestone::Started.name end + def filter_by_no_release? + params[:release_tag].to_s.downcase == FILTER_NONE + end + + def filter_by_any_release? + params[:release_tag].to_s.downcase == FILTER_ANY + end + def by_label(items) return items unless labels? |