/** * Loads all open milestones for the given project and planning * * @param User $user * @param Project $project * @param Planning $planning * * @return Array of \Planning_Milestone */ public function getAllMilestones(User $user, Planning $planning) { $project = $planning->getPlanningTracker()->getProject(); $milestones = array(); $artifacts = $this->artifact_factory->getArtifactsByTrackerIdUserCanView($user, $planning->getPlanningTrackerId()); foreach ($artifacts as $artifact) { $planned_artifacts = $this->getPlannedArtifacts($user, $artifact); $milestones[] = new Planning_ArtifactMilestone($project, $planning, $artifact, $planned_artifacts); } return $milestones; }
/** * Returns the last $quantity milestones - ordered by oldest first * * @return Planning_Milestone[] */ public function getPastMilestones(PFUser $user, Planning $planning, $quantity) { $milestones = array(); $artifacts = $this->artifact_factory->getArtifactsByTrackerIdUserCanView($user, $planning->getPlanningTrackerId()); foreach ($artifacts as $artifact) { if (!$this->isMilestonePast($artifact, $user) && $this->milestoneHasStartDate($artifact, $user)) { continue; } $end_date = $this->getMilestoneEndDate($artifact, $user); $milestones[$end_date . '_' . $artifact->getId()] = $this->getMilestoneFromArtifactWithBurndownInfo($artifact, $user); } ksort($milestones); $milestones = array_values($milestones); $count = count($milestones); $start = $quantity > $count ? 0 : $count - $quantity; return array_reverse(array_slice($milestones, $start)); }