示例#1
0
 protected function _setupSearchObject()
 {
     if ($this->_search_object === null) {
         $this->_search_object = new \thebuggenie\core\entities\SavedSearch();
         $this->_search_object->setFilter('project_id', \thebuggenie\core\entities\SearchFilter::createFilter('project_id', array('o' => '=', 'v' => $this->getBoard()->getProject()->getID())));
         $this->_search_object->setFilter('milestone', \thebuggenie\core\entities\SearchFilter::createFilter('milestone', array('o' => '=', 'v' => $this->getMilestone()->getID())));
         $this->_search_object->setFilter('state', \thebuggenie\core\entities\SearchFilter::createFilter('state', array('o' => '=', 'v' => array(\thebuggenie\core\entities\Issue::STATE_CLOSED, \thebuggenie\core\entities\Issue::STATE_OPEN))));
         $this->_search_object->setFilter('issuetype', \thebuggenie\core\entities\SearchFilter::createFilter('issuetype', array('o' => '!=', 'v' => $this->getBoard()->getEpicIssuetypeID())));
         if ($this->getBoard()->usesSwimlanes() && $this->getBoard()->getSwimlaneType() == AgileBoard::SWIMLANES_ISSUES) {
             $values = array();
             foreach ($this->getBoard()->getMilestoneSwimlanes($this->getMilestone()) as $swimlane) {
                 if ($swimlane->getIdentifier() == $this->getIdentifier()) {
                     continue;
                 }
                 $values[] = $swimlane->getIdentifierIssue()->getID();
                 foreach ($swimlane->getIssues() as $issue) {
                     $values[] = $issue->getID();
                 }
             }
             $this->_search_object->setFilter('id', \thebuggenie\core\entities\SearchFilter::createFilter('id', array('o' => '!=', 'v' => $values)));
         } else {
             if ($this->getBoard()->usesSwimlanes()) {
                 $values = array();
                 foreach ($this->_identifiables as $identifiable) {
                     $values[] = $identifiable instanceof \thebuggenie\core\entities\common\Identifiable ? $identifiable->getID() : $identifiable;
                 }
                 $this->_search_object->setFilter($this->getBoard()->getSwimlaneIdentifier(), \thebuggenie\core\entities\SearchFilter::createFilter($this->getBoard()->getSwimlaneIdentifier(), array('o' => '=', 'v' => $values)));
             }
         }
         $this->_search_object->setIssuesPerPage(0);
         $this->_search_object->setOffset(0);
         $this->_search_object->setSortFields(array(\thebuggenie\core\entities\tables\Issues::MILESTONE_ORDER => \b2db\Criteria::SORT_ASC));
         $this->_search_object->setGroupby(null);
     }
 }
 /**
  * Returns the associated search object
  *
  * @return \thebuggenie\core\entities\SavedSearch
  */
 public function getBacklogSearchObject()
 {
     if ($this->_search_object === null) {
         if ($this->usesSavedSearchBacklog()) {
             $this->_search_object = $this->getBacklogSearch();
         } elseif (!$this->_search_object instanceof \thebuggenie\core\entities\SavedSearch) {
             $this->_search_object = \thebuggenie\core\entities\SavedSearch::getPredefinedSearchObject($this->_autogenerated_search);
             $this->_search_object->setFilter('issuetype', \thebuggenie\core\entities\SearchFilter::createFilter('issuetype', array('o' => '!=', 'v' => $this->getEpicIssuetypeID())));
             $this->_search_object->setFilter('milestone', \thebuggenie\core\entities\SearchFilter::createFilter('milestone', array('o' => '!=', 'v' => null)));
         }
         $this->_search_object->setIssuesPerPage(0);
         $this->_search_object->setOffset(0);
         $this->_search_object->setSortFields(array('issues.milestone_order' => 'desc'));
     }
     return $this->_search_object;
 }