public function findFirstSubmilestoneTracker(Planning_Milestone $milestone) { $children = $this->hierarchy_factory->getChildren($milestone->getTrackerId()); if (!$children) { return null; } $milestone_backlog_trackers = $milestone->getPlanning()->getBacklogTrackers(); foreach ($milestone_backlog_trackers as $milestone_backlog_tracker) { foreach ($children as $tracker) { $planning = $this->planning_factory->getPlanningByPlanningTracker($tracker); if (!$planning) { continue; } $planning_backlog_trackers = $planning->getBacklogTrackers(); foreach ($planning_backlog_trackers as $planning_backlog_tracker) { if ($milestone_backlog_tracker == $planning_backlog_tracker) { return $tracker; } $backlog_tracker_ancestors = $this->hierarchy_factory->getAllParents($planning_backlog_tracker); if (in_array($milestone_backlog_tracker, $backlog_tracker_ancestors)) { return $tracker; } } } } }
public function __construct(\Planning_Milestone $milestone) { $this->id = JsonCast::toInt($milestone->getArtifactId()); $this->label = $milestone->getArtifactTitle(); $this->last_modified = JsonCast::toDate($milestone->getLastModifiedDate()); $this->uri = self::ROUTE . '/' . $this->id; }
private function getMatchingIdsForMilestone(Planning_Milestone $milestone, Tracker $backlog_tracker) { $milestone_id_seed = array($milestone->getArtifactId()); $this->inspected_ids = $milestone_id_seed; $this->filterBacklogIds($backlog_tracker->getId(), $milestone_id_seed); return $this->backlog_ids; }
private function buildAdditionnalPanesInfo(Planning_Milestone $milestone, array &$panes_info) { if (!$milestone->getArtifact()) { return; } EventManager::instance()->processEvent(AGILEDASHBOARD_EVENT_ADDITIONAL_PANES_INFO_ON_MILESTONE, array('milestone' => $milestone, 'user' => $this->user, 'pane_info_list' => &$panes_info)); }
/** * @return bool */ public function canPlan(PFUser $user, Planning_Milestone $milestone) { $art_link_field = $milestone->getArtifact()->getAnArtifactLinkField($user); if ($art_link_field && $art_link_field->userCanUpdate($user)) { return true; } return false; }
private function loadTopBacklog(PFUser $user, Planning_Milestone $milestone) { if (!isset($this->backlog_item_ids[(int) $milestone->getArtifactId()])) { $this->backlog_item_ids[(int) $milestone->getArtifactId()] = array(); $strategy_unassigned = $this->strategy_factory->getSelfBacklogStrategy($milestone); $backlog_artifacts = $this->backlog_item_collection_factory->getUnassignedOpenCollection($user, $milestone, $strategy_unassigned, false); $this->storeTopBacklogArtifacts((int) $milestone->getArtifactId(), $backlog_artifacts); } }
public function __construct(AgileDashboard_BacklogItemDao $item_dao, Tracker_ArtifactDao $artifact_dao, Tracker_ArtifactFactory $artifact_factory, Planning_Milestone $milestone, array $descendant_tracker_ids) { $this->item_dao = $item_dao; $this->artifact_dao = $artifact_dao; $this->artifact_factory = $artifact_factory; $this->milestone = $milestone; $this->milestone_id = $milestone->getArtifactId(); $this->descendant_tracker_ids = $descendant_tracker_ids; $this->backlog_tracker_ids = $milestone->getPlanning()->getBacklogTrackersIds(); }
private function getFirstChildBacklogTracker(Planning_Milestone $milestone) { $backlog_tracker_children = $milestone->getPlanning()->getPlanningTracker()->getChildren(); if ($backlog_tracker_children) { $first_child_tracker = current($backlog_tracker_children); $first_child_planning = $this->planning_factory->getPlanningByPlanningTracker($first_child_tracker); if ($first_child_planning) { return $first_child_planning->getBacklogTrackers(); } } return null; }
/** * @return BreadCrumb_BreadCrumbGenerator */ public function getBreadcrumbs($plugin_path) { $this->generateBareMilestone(); if ($this->milestone->getArtifact()) { $breadcrumbs_merger = new BreadCrumb_Merger(); $breadcrumbs_merger->push(new BreadCrumb_VirtualTopMilestone($plugin_path, $this->project)); foreach (array_reverse($this->milestone->getAncestors()) as $milestone) { $breadcrumbs_merger->push(new BreadCrumb_Milestone($plugin_path, $milestone)); } $breadcrumbs_merger->push(new BreadCrumb_Milestone($plugin_path, $this->milestone)); return $breadcrumbs_merger; } return new BreadCrumb_NoCrumb(); }
private function getAllMilestonesOfCurrentPlanning() { if (!$this->all_milestones) { $this->all_milestones = $this->milestone_factory->getAllMilestones($this->getCurrentUser(), $this->milestone->getPlanning()); } return $this->all_milestones; }
public function parentArtifactId() { $ancestors = $this->milestone->getAncestors(); if (count($ancestors) > 0) { return $ancestors[0]->getArtifactId(); } }
public function __construct(Planning_Milestone $milestone, $redirect_to_self, PFUser $user, array $quick_link_collection) { $this->id = $milestone->getArtifactId(); $this->planning_id = $milestone->getPlanningId(); $this->milestone_title = $milestone->getArtifact()->getTitle(); $this->milestone_start_date = $milestone->getStartDate(); $this->milestone_end_date = $milestone->getEndDate(); $this->milestone_status = $milestone->getArtifact()->getStatus(); $this->edit_submilestone_url = $milestone->getArtifact()->getUri(); $this->redirect_to_self = $redirect_to_self; $this->milestone_capacity = $milestone->getCapacity(); $this->quick_link_collection = $quick_link_collection; }
public function endDate() { $end_date = $this->milestone->getEndDate(); if (!$end_date) { return null; } return $this->formatDate($end_date); }
public function __construct(AgileDashboard_Milestone_Backlog_BacklogItemPresenterCollection $backlog_collection, AgileDashboard_Milestone_Pane_Planning_PlanningSubMilestonePresenterCollection $submilestone_collection, Planning_Milestone $milestone, $parent_item_type, $submilestone_item_type, $add_new_submilestone_url, $can_add_submilestone, $can_plan, $redirect_to_self, array $trackers_without_initial_effort) { $this->backlog_collection = $backlog_collection; $this->submilestone_collection = $submilestone_collection; $this->parent_item_type = $parent_item_type; $this->submilestone_item_type = $submilestone_item_type; $this->add_new_submilestone_url = $add_new_submilestone_url; $this->can_add_submilestone = $can_add_submilestone; $this->can_plan = $can_plan; $this->redirect_to_self = $redirect_to_self; $this->milestone_id = $milestone->getArtifactId(); $this->milestone_planning_id = $milestone->getPlanningId(); $this->milestone_item_type = $milestone->getArtifactTitle(); foreach ($trackers_without_initial_effort as $tracker_without_initial_effort) { $this->trackers_without_initial_effort_field[] = $tracker_without_initial_effort->getName(); } }
/** * @return Cardwall_PaneContentPresenter */ private function getPresenterUsingMappedFields(Cardwall_OnTop_Config_ColumnCollection $columns) { $board_factory = new Cardwall_BoardFactory(); $planned_artifacts = $this->milestone->getPlannedArtifacts(); $field_retriever = new Cardwall_OnTop_Config_MappedFieldProvider($this->config, new Cardwall_FieldProviders_SemanticStatusFieldRetriever()); $board = $board_factory->getBoard($field_retriever, $columns, $planned_artifacts, $this->config, $this->user); $backlog_title = $this->milestone->getPlanning()->getBacklogTracker()->getName(); $redirect_parameter = 'cardwall[agile][' . $this->milestone->getPlanning()->getId() . ']=' . $this->milestone->getArtifactId(); $configure_url = TRACKER_BASE_URL . '/?tracker=' . $this->milestone->getTrackerId() . '&func=admin-cardwall'; return new Cardwall_PaneContentPresenter($board, $this->getQrCode(), $redirect_parameter, $backlog_title, $configure_url); }
private function getSwitchDisplayAvatarsURL() { if ($this->user->isAnonymous()) { return false; } $group_id = $this->milestone->getGroupId(); $planning_id = $this->milestone->getPlanningId(); $tracker_id = $this->milestone->getTrackerId(); $artifact_id = $this->milestone->getArtifactId(); $action = 'toggle_user_display_avatar'; $switch_display_username_url = CARDWALL_BASE_URL . '/?group_id=' . $group_id . '&planning_id=' . $planning_id . '&tracker_id=' . $tracker_id . '&aid=' . $artifact_id . '&action=' . $action; return $switch_display_username_url; }
/** * @return \AgileDashboard_Milestone_Pane_Planning_PlanningPaneInfo */ private function getTopPlanningV2PaneInfo(Planning_Milestone $milestone) { $milestone_artifact_id = $this->getMilestoneArtifactId(); $milestone_tracker = $milestone->getPlanning()->getPlanningTracker(); if (!$milestone_tracker) { return; } $pane_info = new AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo($milestone, $this->theme_path, $milestone_tracker); $pane_info->setActive(true); $this->active_pane[$milestone_artifact_id] = new AgileDashboard_Milestone_Pane_Planning_PlanningV2Pane($pane_info, new AgileDashboard_Milestone_Pane_Planning_PlanningV2Presenter($this->request->getCurrentUser(), $this->request->getProject(), $milestone_artifact_id, null, $this->getPaginatedBacklogItemsRepresentationsForTopMilestone($milestone, $this->request->getCurrentUser()), $this->getPaginatedTopMilestonesRepresentations($this->request->getProject(), $this->request->getCurrentUser()))); return $pane_info; }
/** * @return string The milestone title (i.e. the artifact's one). */ public function getTitle() { return $this->milestone->getArtifactTitle(); }
/** @return string */ public function getPlanningRedirectToNew(Planning_Milestone $milestone, $pane_identifier) { $planning_id = (int) $milestone->getPlanningId(); return "planning[{$pane_identifier}][{$planning_id}]=-1"; }
/** * Get all milestones that share the same parent than given milestone. * * @param User $user * @param Planning_Milestone $milestone * * @return Array of Planning_Milestone */ public function getSiblingMilestones(User $user, Planning_Milestone $milestone) { $sibling_milestones = array(); $milestone_artifact = $milestone->getArtifact(); if ($milestone_artifact) { foreach ($milestone_artifact->getSiblings($user) as $sibling) { if ($sibling->getId() == $milestone_artifact->getId()) { $sibling_milestones[] = $milestone; } else { $sibling_milestones[] = $this->getMilestoneFromArtifact($sibling); } } } return $sibling_milestones; }
public function getSubmitNewUrlLinkedToMilestone(Planning_Milestone $milestone) { return $milestone->getArtifact()->getSubmitNewArtifactLinkedToMeUri($this->submilestone_tracker); }
protected function getUriParametersForMilestone(Planning_Milestone $milestone) { return array('group_id' => $milestone->getGroupId(), 'planning_id' => $milestone->getPlanningId(), 'action' => $this->action, 'aid' => $milestone->getArtifactId(), 'pane' => $this->getIdentifier()); }
public function artifact_id() { return $this->milestone->getArtifactId(); }
public function milestoneCanBeSubmilestone(Planning_Milestone $potential_submilestone) { if ($potential_submilestone->getArtifact()->getTracker()->getParent()) { return $potential_submilestone->getArtifact()->getTracker()->getParent()->getId() == $this->getArtifact()->getTracker()->getId(); } return false; }
public function milestone_days_remaining() { return max($this->milestone->getDaysUntilEnd(), 0); }
public function withinTheSameProjectAs(Planning_Milestone $other_milestone) { $this->project = $other_milestone->getProject(); return $this; }
/** * @return \AgileDashboard_Milestone_Pane_Planning_PlanningPaneInfo */ private function getTopPlanningV2PaneInfo(Planning_Milestone $milestone) { $milestone_artifact_id = $this->getMilestoneArtifactId(); $milestone_tracker = $milestone->getPlanning()->getPlanningTracker(); if (!$milestone_tracker) { return; } $pane_info = new AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo($milestone, $this->theme_path, $milestone_tracker); if ($this->request->get('pane') == AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo::IDENTIFIER) { $pane_info->setActive(true); $this->active_pane[$milestone_artifact_id] = new AgileDashboard_Milestone_Pane_Planning_PlanningV2Pane($pane_info, new AgileDashboard_Milestone_Pane_Planning_PlanningV2Presenter($this->request->getCurrentUser(), $this->request->getProject(), $milestone_artifact_id)); } return $pane_info; }
private function getAllMilestonesOfCurrentPlanning(Planning_Milestone $milestone) { return $this->milestone_factory->getAllBareMilestones($this->request->getCurrentUser(), $milestone->getPlanning()); }
public function itHasATitle() { $this->milestone = new Planning_ArtifactMilestone($this->project, $this->planning, $this->artifact); $this->assertEqual($this->milestone->getArtifactTitle(), 'Foo'); }
/** * Returns a status array. E.g. * array( * Tracker_Artifact::STATUS_OPEN => no_of_opne, * Tracker_Artifact::STATUS_CLOSED => no_of_closed, * ) * * @return array */ public function getMilestoneStatusCount(PFUser $user, Planning_Milestone $milestone) { return $this->status_counter->getStatus($user, $milestone->getArtifactId()); }