public function linkToMilestoneParent(Planning_Milestone $milestone, PFUser $user, Tracker_Artifact $artifact_added) { $this->milestone_factory->addMilestoneAncestors($user, $milestone); $parent_milestone = $milestone->getParent(); if (!$parent_milestone) { return; } $parent_milestone_artifact = $parent_milestone->getArtifact(); if (!$this->parentMilestoneHasItemTrackerInItsBacklogTracker($parent_milestone, $artifact_added)) { return; } if (!$this->isParentLinkedToParentMilestone($artifact_added, $parent_milestone_artifact, $user)) { $parent_milestone_artifact->linkArtifact($artifact_added->getId(), $user); $this->linkToMilestoneParent($parent_milestone, $user, $artifact_added); } }
/** * @return Planning_Presenter_MilestoneSummaryPresenter[] */ private function getMilestoneSummaryPresenters(Planning $last_planning, PFUser $user) { $presenters = array(); $has_cardwall = $this->hasCardwall($last_planning); $last_planning_current_milestones = $this->getPlanningMilestonesDependingOnTimePeriodOrStatus($last_planning); if (empty($last_planning_current_milestones)) { return $presenters; } foreach ($last_planning_current_milestones as $milestone) { $this->milestone_factory->addMilestoneAncestors($user, $milestone); $milestone = $this->milestone_factory->updateMilestoneContextualInfo($user, $milestone); if ($milestone->hasUsableBurndownField()) { $burndown_data = $milestone->getBurndownData($user); $presenters[] = new Planning_Presenter_MilestoneBurndownSummaryPresenter($milestone, $this->plugin_path, $has_cardwall, $burndown_data); } else { $presenters[] = new Planning_Presenter_MilestoneSummaryPresenter($milestone, $this->plugin_path, $has_cardwall, $this->milestone_factory->getMilestoneStatusCount($user, $milestone)); } } return $presenters; }