示例#1
0
 /**
  * Apply filter
  *
  * @access public
  * @return FilterInterface
  */
 public function apply()
 {
     $task_ids = $this->db->table(TagModel::TABLE)->ilike(TagModel::TABLE . '.name', $this->value)->asc(TagModel::TABLE . '.project_id')->join(TaskTagModel::TABLE, 'tag_id', 'id')->findAllByColumn(TaskTagModel::TABLE . '.task_id');
     if (empty($task_ids)) {
         $task_ids = array(-1);
     }
     $this->query->in(TaskModel::TABLE . '.id', $task_ids);
     return $this;
 }
示例#2
0
 /**
  * Get subquery
  *
  * @access protected
  * @return Table
  */
 protected function getSubQuery()
 {
     return $this->db->table(TaskLinkModel::TABLE)->columns(TaskLinkModel::TABLE . '.task_id', LinkModel::TABLE . '.label')->join(LinkModel::TABLE, 'id', 'link_id', TaskLinkModel::TABLE)->ilike(LinkModel::TABLE . '.label', $this->value);
 }
 /**
  * Get subquery
  *
  * @access protected
  * @return Table
  */
 protected function getSubQuery()
 {
     $subquery = $this->db->table(Subtask::TABLE)->columns(Subtask::TABLE . '.user_id', Subtask::TABLE . '.task_id', User::TABLE . '.name', User::TABLE . '.username')->join(User::TABLE, 'id', 'user_id', Subtask::TABLE)->neq(Subtask::TABLE . '.status', Subtask::STATUS_DONE);
     return $this->applySubQueryFilter($subquery);
 }
示例#4
0
 protected function getTaskIdsWithGivenTag()
 {
     return $this->db->table(TagModel::TABLE)->ilike(TagModel::TABLE . '.name', $this->value)->asc(TagModel::TABLE . '.project_id')->join(TaskTagModel::TABLE, 'tag_id', 'id')->findAllByColumn(TaskTagModel::TABLE . '.task_id');
 }