/**
  * 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;
 }
示例#2
0
 /**
  * @see Tracker_Artifact::getAllowedChildrenTypes()
  */
 public function getAllowedChildrenTypes()
 {
     $trackers = $this->artifact->getAllowedChildrenTypes();
     if ($this->getTracker() == $this->planning->getPlanningTracker()) {
         $trackers[] = $this->planning->getBacklogTracker();
     }
     return $trackers;
 }
示例#3
0
 /**
  * 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);
 }
示例#4
0
 /**
  * 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;
 }
示例#5
0
 /**
  * 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;
 }
示例#8
0
 public function createNewItemToPlan()
 {
     $tracker = $this->planning->getPlanningTracker();
     return $GLOBALS['Language']->getText('plugin_agiledashboard', 'create_new_item_to_plan', array($tracker->getItemName()));
 }