/** * Returns the cardwall configuration of the given planning * * @param Planning $planning * * @return Cardwall_OnTop_Config | null */ public function getOnTopConfigByPlanning(Planning $planning) { $tracker = $planning->getPlanningTracker(); if ($this->getOnTopDao()->isEnabled($tracker->getId())) { return $this->getOnTopConfig($tracker); } return null; }
/** * @see Tracker_Artifact::getAllowedChildrenTypes() */ public function getAllowedChildrenTypes() { $trackers = $this->artifact->getAllowedChildrenTypes(); if ($this->getTracker() == $this->planning->getPlanningTracker()) { $trackers[] = $this->planning->getBacklogTracker(); } return $trackers; }
/** * Allow to create artifacts when the item comes from the planning tracker and if * the backlog tracker is at the root of the hierarchy. * * Example: * Given I have a planning Epic -> Release * And Epic has not parent (root of hierarchy) * Then I can create an Epic right in the release * * Counter example: * Given I have a planning Story -> Sprint * And I have a hierarchy Epic -> Story * Then I cannot create Story directly below Sprint * * @param array $allowed_trackers * @return type */ private function appendBacklogTrackerIfRoot(array $allowed_trackers) { $backlog_tracker = array(); if ($this->getTracker() == $this->planning->getPlanningTracker()) { $backlog_hierarchy = $this->planning->getBacklogTracker()->getHierarchy(); if ($backlog_hierarchy->isRoot($this->planning->getBacklogTrackerId())) { $backlog_tracker = array($this->planning->getBacklogTracker()); } } return array_merge($allowed_trackers, $backlog_tracker); }
/** * Loads all open milestones for the given project and planning * * @param User $user * @param Project $project * @param Planning $planning * * @return Array of \Planning_Milestone */ public function getAllMilestones(User $user, Planning $planning) { $project = $planning->getPlanningTracker()->getProject(); $milestones = array(); $artifacts = $this->artifact_factory->getArtifactsByTrackerIdUserCanView($user, $planning->getPlanningTrackerId()); foreach ($artifacts as $artifact) { $planned_artifacts = $this->getPlannedArtifacts($user, $artifact); $milestones[] = new Planning_ArtifactMilestone($project, $planning, $artifact, $planned_artifacts); } return $milestones; }
/** * Retrieve the project trackers that can be used as planning trackers. * * @param Planning $planning The planning for which we want to know the available trackers. * * @return Array of Tracker */ public function getAvailablePlanningTrackers(Planning $planning) { $planning_trackers = array($planning->getPlanningTracker()); foreach ($this->dao->searchNonPlanningTrackersByGroupId($planning->getGroupId()) as $row) { $planning_trackers[] = $this->tracker_factory->getInstanceFromRow($row); } return $planning_trackers; }
private function getAllMilestonesWithoutCaching(PFUser $user, Planning $planning) { $project = $planning->getPlanningTracker()->getProject(); $artifacts = $this->artifact_factory->getArtifactsByTrackerIdUserCanView($user, $planning->getPlanningTrackerId()); $milestones = array(); foreach ($artifacts as $artifact) { /** @todo: this test is only here if we have crappy data in the db * ie. an artifact creation failure that leads to an incomplete artifact. * this should be fixed in artifact creation (transaction & co) and after * DB clean, the following test can be removed. */ if ($artifact->getLastChangeset()) { $planned_artifacts = $this->getPlannedArtifacts($user, $artifact); $milestones[] = new Planning_ArtifactMilestone($project, $planning, $artifact, $planned_artifacts); } } return $milestones; }
private function getCardwallConfiguration(Planning $planning) { $tracker = $planning->getPlanningTracker(); $view = null; EventManager::instance()->processEvent(AGILEDASHBOARD_EVENT_PLANNING_CONFIG, array('tracker' => $tracker, 'view' => &$view)); return $view; }
public function createNewItemToPlan() { $tracker = $this->planning->getPlanningTracker(); return $GLOBALS['Language']->getText('plugin_agiledashboard', 'create_new_item_to_plan', array($tracker->getItemName())); }