diff options
author | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-03-10 01:49:13 +0000 |
---|---|---|
committer | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-03-12 18:08:01 +0000 |
commit | b9d13c11dee8f555b0d80fd5b9b6a42be7721461 (patch) | |
tree | fbf710243c4a55fbf7198a4ec564eed5ac9d0fb3 | |
parent | 5a586f364c5d2b866d6a074eff7996f05585b7d5 (diff) | |
download | gitlab-ce-b9d13c11dee8f555b0d80fd5b9b6a42be7721461.tar.gz |
implements upcoming filter in milstones
-rw-r--r-- | app/finders/issuable_finder.rb | 8 | ||||
-rw-r--r-- | app/helpers/milestones_helper.rb | 1 | ||||
-rw-r--r-- | app/models/milestone.rb | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index c88a420b412..410e6f6456c 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -94,6 +94,10 @@ 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,6 +252,10 @@ class IssuableFinder 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 }) else items = items.joins(:milestone).where(milestones: { title: params[:milestone_title] }) diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb index e3e7daa49c5..e8ac8788d9d 100644 --- a/app/helpers/milestones_helper.rb +++ b/app/helpers/milestones_helper.rb @@ -59,6 +59,7 @@ module MilestonesHelper grouped_milestones = grouped_milestones.sort_by { |x| x.due_date.nil? ? epoch : x.due_date } grouped_milestones.unshift(Milestone::None) grouped_milestones.unshift(Milestone::Any) + grouped_milestones.unshift(Milestone::Upcoming) options_from_collection_for_select(grouped_milestones, 'name', 'title', params[:milestone_title]) end diff --git a/app/models/milestone.rb b/app/models/milestone.rb index e3b6c552f92..85f7d8a7754 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -19,6 +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) include InternalId include Sortable |