/** * @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; }
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(); }