diff options
Diffstat (limited to 'app/finders/issuable_finder.rb')
-rw-r--r-- | app/finders/issuable_finder.rb | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 86970ae3219..1773ac2d508 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -484,19 +484,22 @@ class IssuableFinder # rubocop: disable CodeReuse/ActiveRecord def by_milestone(items) - return items unless milestones? - return items if filter_by_any_milestone? - - if filter_by_no_milestone? - items.left_joins_milestones.where(milestone_id: nil) - elsif filter_by_upcoming_milestone? - upcoming_ids = Milestone.upcoming_ids(projects, related_groups) - items.left_joins_milestones.where(milestone_id: upcoming_ids) - elsif filter_by_started_milestone? - items.left_joins_milestones.merge(Milestone.started) - else - items.with_milestone(params[:milestone_title]) + if milestones? + if filter_by_no_milestone? + items = items.left_joins_milestones.where(milestone_id: [-1, nil]) + elsif filter_by_any_milestone? + items = items.any_milestone + elsif filter_by_upcoming_milestone? + upcoming_ids = Milestone.upcoming_ids(projects, related_groups) + items = items.left_joins_milestones.where(milestone_id: upcoming_ids) + elsif filter_by_started_milestone? + items = items.left_joins_milestones.merge(Milestone.started) + else + items = items.with_milestone(params[:milestone_title]) + end end + + items end # rubocop: enable CodeReuse/ActiveRecord |