示例#1
0
 /**
  * @return Chart
  */
 public function buildGraph()
 {
     $graph = new Chart($this->width, $this->height);
     $graph->SetScale("datlin");
     $graph->title->Set($this->title);
     $graph->subtitle->Set($this->description);
     $colors = $graph->getThemedColors();
     $graph->xaxis->SetTickLabels($this->burndown_data->getHumanReadableDates());
     $remaining_effort = new LinePlot($this->burndown_data->getRemainingEffort());
     $remaining_effort->SetColor($colors[1] . ':0.7');
     $remaining_effort->SetWeight(2);
     $remaining_effort->SetLegend('Remaining effort');
     $remaining_effort->mark->SetType(MARK_FILLEDCIRCLE);
     $remaining_effort->mark->SetColor($colors[1] . ':0.7');
     $remaining_effort->mark->SetFillColor($colors[1]);
     $remaining_effort->mark->SetSize(3);
     $graph->Add($remaining_effort);
     $ideal_burndown = new LinePlot($this->burndown_data->getIdealEffort());
     $ideal_burndown->SetColor($colors[0] . ':1.25');
     $ideal_burndown->SetLegend('Ideal Burndown');
     $graph->Add($ideal_burndown);
     return $graph;
 }
 public function getBurndownData(Tracker_Artifact $artifact, User $user, $start_date, $duration)
 {
     $field = $this->getBurndownRemainingEffortField($artifact, $user);
     $time_period = new Tracker_Chart_Data_BurndownTimePeriod($start_date, $duration);
     $burndown_data = new Tracker_Chart_Data_Burndown($time_period);
     $tonight = mktime(23, 59, 59, date('n'), date('j'), date('Y'));
     foreach ($time_period->getDayOffsets() as $day_offset) {
         $timestamp = strtotime("+{$day_offset} day 23 hours 59 minutes 59 seconds", $start_date);
         if ($timestamp <= $tonight) {
             $remaining_effort = $field->getComputedValue($user, $artifact, $timestamp);
             $burndown_data->pushRemainingEffort($remaining_effort);
         }
     }
     return $burndown_data;
 }
示例#3
0
 public function itHasNoIdealBurndown()
 {
     $burndown_data = new Tracker_Chart_Data_Burndown($this->time_period);
     $this->assertIdentical($burndown_data->getIdealEffort(), array(0, 0, 0));
 }
 private function addRemainingEffortData(Tracker_Chart_Data_Burndown $burndown_data, TimePeriod $time_period, Tracker_Artifact $artifact, PFUser $user, $start_date)
 {
     $field = $this->getBurndownRemainingEffortField($artifact, $user);
     if (!$field) {
         return;
     }
     $tonight = mktime(23, 59, 59, date('n'), date('j'), date('Y'));
     foreach ($time_period->getDayOffsets() as $day_offset) {
         $timestamp = strtotime("+{$day_offset} day 23 hours 59 minutes 59 seconds", $start_date);
         if ($timestamp <= $tonight) {
             $remaining_effort = $this->getCachedValueOrComputeValue($field, $user, $artifact, $timestamp);
             $burndown_data->addEffortAt($day_offset, $remaining_effort);
         }
     }
 }
 public function burndown_data()
 {
     return $this->burndown_data->getJsonRepresentation();
 }