public function getUnplannedOpenCollection(PFUser $user, Planning_Milestone $milestone, AgileDashboard_Milestone_Backlog_DescendantBacklogStrategy $backlog_strategy, $redirect_to_self)
 {
     $artifacts = array();
     $backlog_item_ids = array();
     $sub_milestone_ids = $this->getSubmilestoneIds($user, $milestone);
     $item_collection = $backlog_strategy->getOpenUnplannedArtifacts($user, $sub_milestone_ids);
     foreach ($item_collection as $artifact) {
         $artifacts[$artifact->getId()] = $artifact;
         $backlog_item_ids[] = $artifact->getId();
     }
     $parents = $this->getParentArtifacts($milestone, $user, $backlog_item_ids);
     $semantics = $this->getArtifactsSemantics($user, $milestone, $backlog_item_ids, $artifacts);
     if (empty($backlog_item_ids)) {
         $children = 0;
     } else {
         $children = $this->artifact_factory->getChildrenCount($backlog_item_ids);
     }
     $collection = $this->backlog_item_builder->getCollection();
     foreach ($artifacts as $artifact) {
         $artifact_id = $artifact->getId();
         if (!isset($semantics[$artifact_id]) || !isset($semantics[$artifact_id][Tracker_Semantic_Status::NAME]) || $semantics[$artifact_id][Tracker_Semantic_Status::NAME] != AgileDashboard_BacklogItemDao::STATUS_OPEN) {
             continue;
         }
         $artifact->setTitle($semantics[$artifact_id][Tracker_Semantic_Title::NAME]);
         $backlog_item = $this->backlog_item_builder->getItem($artifact, $redirect_to_self);
         $backlog_item->setStatus(Tracker_Semantic_Status::OPEN);
         if (isset($parents[$artifact_id])) {
             $backlog_item->setParent($parents[$artifact_id]);
         }
         if (isset($children[$artifact_id])) {
             $backlog_item->setHasChildren($children[$artifact_id] > 0);
         }
         $this->setInitialEffort($backlog_item, $semantics[$artifact_id]);
         $collection->push($backlog_item);
     }
     $collection->setTotalAvaialableSize($item_collection->getTotalAvaialableSize());
     return $collection;
 }