gitlab-org--gitlab-foss/app/models/group_milestone.rb
Fatih Acet e9ef02096b
Add project milestone link to dashboard milestones
One of the steps to deprecate dashboard milestones.
Links do dashboard milestone are replaced with links for each
project milestone
2018-12-20 13:33:09 +01:00

42 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# Group Milestones are milestones that can be shared among many projects within the same group
class GroupMilestone < GlobalMilestone
attr_reader :group, :milestones
def self.build_collection(group, projects, params)
params =
{ state: params[:state] }
project_milestones = Milestone.of_projects(projects)
child_milestones = Milestone.filter_by_state(project_milestones, params[:state])
grouped_milestones = child_milestones.group_by(&:title)
grouped_milestones.map do |title, grouped|
new(title, grouped, group)
end
end
def self.build(group, projects, title)
child_milestones = Milestone.of_projects(projects).where(title: title)
return if child_milestones.blank?
new(title, child_milestones, group)
end
def initialize(title, milestones, group)
@milestones = milestones
@group = group
end
def milestone
@milestone ||= milestones.find { |m| m.description.present? } || milestones.first
end
def issues_finder_params
{ group_id: group.id }
end
def legacy_group_milestone?
true
end
end