/** * Builds a new cross-tracker search view builder. * * TODO: * - move to controller (this has nothing to do with routing) * * @param Codendi_Request $request * * @return Tracker_CrossSearch_ViewBuilder */ protected function getViewBuilder(Codendi_Request $request) { $form_element_factory = Tracker_FormElementFactory::instance(); $group_id = $request->get('group_id'); $user = $request->getCurrentUser(); $object_god = new TrackerManager(); $planning_trackers = $this->planning_factory->getPlanningTrackers($group_id, $user); $art_link_field_ids = $form_element_factory->getArtifactLinkFieldsOfTrackers($planning_trackers); return new Planning_ViewBuilder($form_element_factory, $object_god->getCrossSearch($art_link_field_ids), $object_god->getCriteriaBuilder($user, $planning_trackers)); }
/** * Return the 'Planning' tracker (tracker we should be able to use artifacts to perform search. * * This method hard code dependency with agile dashboard and planning stuff. * It should be renamed later on when planning definition is clearly defined. * * @param Integer $group_id * * @return Array of Integer */ private function getPlanningTrackers($group_id, PFUser $user) { $trackers = array(); @(include_once dirname(__FILE__) . '/../../../agiledashboard/include/Planning/PlanningFactory.class.php'); if (class_exists('PlanningFactory')) { $planning_factory = new PlanningFactory(new PlanningDao(), $this->getTrackerFactory(), Tracker_FormElementFactory::instance()); $trackers = $planning_factory->getPlanningTrackers($group_id, $user); } return $trackers; }