diff options
Diffstat (limited to 'app/finders/issues_finder.rb')
-rw-r--r-- | app/finders/issues_finder.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/finders/issues_finder.rb b/app/finders/issues_finder.rb index abf0c180d6b..21a19aa22a1 100644 --- a/app/finders/issues_finder.rb +++ b/app/finders/issues_finder.rb @@ -91,6 +91,12 @@ class IssuesFinder < IssuableFinder by_issue_types(issues) end + # Negates all params found in `negatable_params` + def filter_negated_items(items) + issues = super + by_negated_issue_types(issues) + end + def by_confidential(items) return items if params[:confidential].nil? @@ -122,6 +128,13 @@ class IssuesFinder < IssuableFinder items.with_issue_type(params[:issue_types]) end + + def by_negated_issue_types(items) + issue_type_params = Array(not_params[:issue_types]).map(&:to_s) & WorkItem::Type.base_types.keys + return items if issue_type_params.blank? + + items.without_issue_type(issue_type_params) + end end IssuesFinder.prepend_mod_with('IssuesFinder') |