/**
  * Instanciates a new controller.
  * 
  * TODO:
  *   - pass $request to actions (e.g. show).
  * 
  * @param Codendi_Request           $request
  * @param PlanningFactory           $planning_factory
  * @param Planning_MilestoneFactory $milestone_factory 
  */
 public function __construct(Codendi_Request $request, Planning_MilestoneFactory $milestone_factory, ProjectManager $project_manager)
 {
     parent::__construct('agiledashboard', $request);
     $this->milestone_factory = $milestone_factory;
     $project = $project_manager->getProject($request->get('group_id'));
     try {
         $this->milestone = $this->milestone_factory->getMilestoneWithPlannedArtifactsAndSubMilestones($this->getCurrentUser(), $project, $request->get('planning_id'), $request->get('aid'));
     } catch (Tracker_Hierarchy_MoreThanOneParentException $e) {
         $GLOBALS['Response']->addFeedback('error', $e->getMessage(), CODENDI_PURIFIER_LIGHT);
     }
     if (!$this->milestone) {
         $this->milestone = $this->milestone_factory->getNoMilestone($project, $request->get('planning_id'));
     }
 }