Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChantal Rollison <crollison@gitlab.com>2018-08-03 22:52:37 +0300
committerKamil TrzciƄski <ayufan@ayufan.eu>2018-08-03 22:52:37 +0300
commit90aae02bd77e438510a4c562cc75ef482cf0dcf1 (patch)
treedbde07c5b39910993c226117280cfb8f4f3b19b1 /app/models/dashboard_group_milestone.rb
parentc4be8de7ad404f30dd6bfa9c17be4b94ecaf92e6 (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.rb36
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