mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-27 21:46:16 +10:00
Merge branch 'upcoming' into 'master'
Implements upcoming filter in milstones  @DouweM @JobV I think this is what you wanted :) Lemme know if it there is something that need changing Had alot of fun doing it! Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/14102 See merge request !3148
This commit is contained in:
@@ -36,6 +36,7 @@ v 8.5.5
|
||||
- Prevent a 500 error in Todos when author was removed
|
||||
- Fix pagination for filtered dashboard and explore pages
|
||||
- Fix "Show all" link behavior
|
||||
- Add #upcoming filter to Milestone filter (Tiago Botelho)
|
||||
|
||||
v 8.5.4
|
||||
- Do not cache requests for badges (including builds badge)
|
||||
|
||||
@@ -244,10 +244,17 @@ class IssuableFinder
|
||||
items
|
||||
end
|
||||
|
||||
def filter_by_upcoming_milestone?
|
||||
params[:milestone_title] == '#upcoming'
|
||||
end
|
||||
|
||||
def by_milestone(items)
|
||||
if milestones?
|
||||
if filter_by_no_milestone?
|
||||
items = items.where(milestone_id: [-1, nil])
|
||||
elsif filter_by_upcoming_milestone?
|
||||
upcoming = Milestone.where(project_id: projects).upcoming
|
||||
items = items.joins(:milestone).where(milestones: { title: upcoming.title })
|
||||
else
|
||||
items = items.joins(:milestone).where(milestones: { title: params[:milestone_title] })
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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', '#upcoming', -2)
|
||||
|
||||
include InternalId
|
||||
include Sortable
|
||||
@@ -81,6 +82,10 @@ class Milestone < ActiveRecord::Base
|
||||
super("milestones", /(?<milestone>\d+)/)
|
||||
end
|
||||
|
||||
def self.upcoming
|
||||
self.where('due_date > ?', Time.now).order(due_date: :asc).first
|
||||
end
|
||||
|
||||
def to_reference(from_project = nil)
|
||||
escaped_title = self.title.gsub("]", "\\]")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user