diff options
-rw-r--r-- | app/finders/issuable_finder.rb | 13 | ||||
-rw-r--r-- | app/models/milestone.rb | 7 |
2 files changed, 12 insertions, 8 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 410e6f6456c..d592bdd0eb5 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -94,10 +94,6 @@ class IssuableFinder params[:milestone_title].present? end - def upcoming? - params[:milestone_title] == 'Upcoming' - end - def filter_by_no_milestone? milestones? && params[:milestone_title] == Milestone::None.title end @@ -248,14 +244,17 @@ class IssuableFinder items end + def upcoming? + params[:milestone_title] == '#upcoming' && projects + end + def by_milestone(items) if milestones? if filter_by_no_milestone? items = items.where(milestone_id: [-1, nil]) elsif upcoming? - upcoming = Milestone.where(project_id: projects) - .where('due_date > ?', Time.now).order(due_date: :asc).first - items = items.joins(:milestone).where(milestone: { title: upcoming.title }) + upcoming = Milestone.upcoming(projects) + items = items.joins(:milestone).where(milestones: { title: upcoming.title }) else items = items.joins(:milestone).where(milestones: { title: params[:milestone_title] }) diff --git a/app/models/milestone.rb b/app/models/milestone.rb index 85f7d8a7754..7697072d231 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -19,7 +19,7 @@ class Milestone < ActiveRecord::Base MilestoneStruct = Struct.new(:title, :name, :id) None = MilestoneStruct.new('No Milestone', 'No Milestone', 0) Any = MilestoneStruct.new('Any Milestone', '', -1) - Upcoming = MilestoneStruct.new('Upcoming', '', -2) + Upcoming = MilestoneStruct.new('Upcoming', '#upcoming', -2) include InternalId include Sortable @@ -82,6 +82,11 @@ class Milestone < ActiveRecord::Base super("milestones", /(?<milestone>\d+)/) end + def self.upcoming(projects) + self.where(project_id: projects) + .where('due_date > ?', Time.now). order(due_date: :asc).first + end + def to_reference(from_project = nil) escaped_title = self.title.gsub("]", "\\]") |