/**
  * @see TRACKER_EVENT_REPORT_SAVE_ADDITIONAL_CRITERIA
  */
 public function tracker_event_report_save_additional_criteria($params)
 {
     $dao = new MilestoneReportCriterionDao();
     $project = $params['report']->getTracker()->getProject();
     $user = $this->getCurrentUser();
     $milestone_provider = new AgileDashboard_Milestone_SelectedMilestoneProvider($params['additional_criteria'], $this->getMilestoneFactory(), $user, $project);
     if ($milestone_provider->getMilestone()) {
         $dao->save($params['report']->getId(), $milestone_provider->getMilestoneId());
     } else {
         $dao->delete($params['report']->getId());
     }
 }
 private function getMilestoneFromCriteria(PFUser $user, Project $project, $additional_criteria)
 {
     $milestone_provider = new AgileDashboard_Milestone_SelectedMilestoneProvider($additional_criteria, $this->milestone_factory, $user, $project);
     return $milestone_provider->getMilestone();
 }