diff options
author | Chantal Rollison <crollison@gitlab.com> | 2018-08-03 22:52:37 +0300 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2018-08-03 22:52:37 +0300 |
commit | 90aae02bd77e438510a4c562cc75ef482cf0dcf1 (patch) | |
tree | dbde07c5b39910993c226117280cfb8f4f3b19b1 /app/models/dashboard_group_milestone.rb | |
parent | c4be8de7ad404f30dd6bfa9c17be4b94ecaf92e6 (diff) |
Add group milestones to dashboard milestone page
Diffstat (limited to 'app/models/dashboard_group_milestone.rb')
-rw-r--r-- | app/models/dashboard_group_milestone.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/models/dashboard_group_milestone.rb b/app/models/dashboard_group_milestone.rb new file mode 100644 index 00000000000..13807d43265 --- /dev/null +++ b/app/models/dashboard_group_milestone.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +# Dashboard Group Milestones are milestones that allow us to pull more info out for the UI that the Milestone object doesn't allow for +class DashboardGroupMilestone < GlobalMilestone + extend ::Gitlab::Utils::Override + + attr_reader :group_name + + override :initialize + def initialize(milestone) + super(milestone.title, Array(milestone)) + + @group_name = milestone.group.full_name + end + + def self.build_collection(groups) + MilestonesFinder.new(group_ids: groups.pluck(:id)).execute.map { |m| new(m) } + end + + override :group_milestone? + def group_milestone? + @first_milestone.group_milestone? + end + + override :milestoneish_ids + def milestoneish_ids + milestones.map(&:id) + end + + def group + @first_milestone.group + end + + def iid + @first_milestone.iid + end +end |