示例#1
0
 /**
  * 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));
 }