Пример #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->setSortFields(array('issues.milestone_order' => \b2db\Criteria::SORT_ASC));
         $this->_search_object->setGroupby(null);
     }
 }