Commit 222199f6 authored by Sean McGivern's avatar Sean McGivern

Only count active milestones as started

The Upcoming milestone filter only considers active milestones, but the
Started one included closed milestones, too. This was inconsistent.
parent 8d067414
...@@ -496,7 +496,7 @@ class IssuableFinder ...@@ -496,7 +496,7 @@ class IssuableFinder
upcoming_ids = Milestone.upcoming_ids(projects, related_groups) upcoming_ids = Milestone.upcoming_ids(projects, related_groups)
items = items.left_joins_milestones.where(milestone_id: upcoming_ids) items = items.left_joins_milestones.where(milestone_id: upcoming_ids)
elsif filter_by_started_milestone? elsif filter_by_started_milestone?
items = items.left_joins_milestones.where('milestones.start_date <= NOW()') items = items.left_joins_milestones.merge(Milestone.started)
else else
items = items.with_milestone(params[:milestone_title]) items = items.with_milestone(params[:milestone_title])
end end
......
...@@ -37,6 +37,7 @@ class Milestone < ActiveRecord::Base ...@@ -37,6 +37,7 @@ class Milestone < ActiveRecord::Base
scope :active, -> { with_state(:active) } scope :active, -> { with_state(:active) }
scope :closed, -> { with_state(:closed) } scope :closed, -> { with_state(:closed) }
scope :for_projects, -> { where(group: nil).includes(:project) } scope :for_projects, -> { where(group: nil).includes(:project) }
scope :started, -> { active.where('milestones.start_date <= CURRENT_DATE') }
scope :for_projects_and_groups, -> (projects, groups) do scope :for_projects_and_groups, -> (projects, groups) do
projects = projects.compact if projects.is_a? Array projects = projects.compact if projects.is_a? Array
......
---
title: Only consider active milestones when using the special Started milestone filter
merge_request:
author:
type: fixed
...@@ -92,7 +92,7 @@ When filtering by milestone, in addition to choosing a specific project mileston ...@@ -92,7 +92,7 @@ When filtering by milestone, in addition to choosing a specific project mileston
- **None**: Show issues or merge requests with no assigned milestone. - **None**: Show issues or merge requests with no assigned milestone.
- **Any**: Show issues or merge requests that have an assigned milestone. - **Any**: Show issues or merge requests that have an assigned milestone.
- **Upcoming**: Show issues or merge requests that have been assigned the open milestone that has the next upcoming due date (i.e. nearest due date in the future). - **Upcoming**: Show issues or merge requests that have been assigned the open milestone that has the next upcoming due date (i.e. nearest due date in the future).
- **Started**: Show issues or merge requests that have an assigned milestone with a start date that is before today. - **Started**: Show issues or merge requests that have an open assigned milestone with a start date that is before today.
## Milestone view ## Milestone view
......
...@@ -220,6 +220,7 @@ describe IssuesFinder do ...@@ -220,6 +220,7 @@ describe IssuesFinder do
let(:yesterday) { Date.today - 1.day } let(:yesterday) { Date.today - 1.day }
let(:tomorrow) { Date.today + 1.day } let(:tomorrow) { Date.today + 1.day }
let(:two_days_ago) { Date.today - 2.days } let(:two_days_ago) { Date.today - 2.days }
let(:three_days_ago) { Date.today - 3.days }
let(:milestones) do let(:milestones) do
[ [
...@@ -227,6 +228,8 @@ describe IssuesFinder do ...@@ -227,6 +228,8 @@ describe IssuesFinder do
create(:milestone, project: project_started_1_and_2, title: '1.0', start_date: two_days_ago), create(:milestone, project: project_started_1_and_2, title: '1.0', start_date: two_days_ago),
create(:milestone, project: project_started_1_and_2, title: '2.0', start_date: yesterday), create(:milestone, project: project_started_1_and_2, title: '2.0', start_date: yesterday),
create(:milestone, project: project_started_1_and_2, title: '3.0', start_date: tomorrow), create(:milestone, project: project_started_1_and_2, title: '3.0', start_date: tomorrow),
create(:milestone, :closed, project: project_started_1_and_2, title: '4.0', start_date: three_days_ago),
create(:milestone, :closed, project: project_started_8, title: '6.0', start_date: three_days_ago),
create(:milestone, project: project_started_8, title: '7.0'), create(:milestone, project: project_started_8, title: '7.0'),
create(:milestone, project: project_started_8, title: '8.0', start_date: yesterday), create(:milestone, project: project_started_8, title: '8.0', start_date: yesterday),
create(:milestone, project: project_started_8, title: '9.0', start_date: tomorrow) create(:milestone, project: project_started_8, title: '9.0', start_date: tomorrow)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment