From 3f084916e3befbaadf8dc86c8329a408dfcdf351 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sun, 28 Jun 2015 21:53:50 -0400 Subject: Add category attribute for advanced search --- app/Model/TaskFilter.php | 27 +++++++++++++++++++++++++++ app/Model/TaskFinder.php | 15 --------------- 2 files changed, 27 insertions(+), 15 deletions(-) (limited to 'app/Model') diff --git a/app/Model/TaskFilter.php b/app/Model/TaskFilter.php index bdfbb190..b14dad0a 100644 --- a/app/Model/TaskFilter.php +++ b/app/Model/TaskFilter.php @@ -59,6 +59,9 @@ class TaskFilter extends Base case 'T_DESCRIPTION': $this->filterByDescription($value); break; + case 'T_CATEGORY': + $this->filterByCategoryName($value); + break; } } @@ -202,6 +205,30 @@ class TaskFilter extends Base return $this; } + /** + * Filter by category + * + * @access public + * @param array $values List of assignees + * @return TaskFilter + */ + public function filterByCategoryName(array $values) + { + $this->query->join(Category::TABLE, 'id', 'category_id'); + $this->query->beginOr(); + + foreach ($values as $category) { + if ($category === 'none') { + $this->query->eq(Task::TABLE.'.category_id', 0); + } + else { + $this->query->eq(Category::TABLE.'.name', $category); + } + } + + $this->query->closeOr(); + } + /** * Filter by assignee * diff --git a/app/Model/TaskFinder.php b/app/Model/TaskFinder.php index 9c46f4a9..e007187f 100644 --- a/app/Model/TaskFinder.php +++ b/app/Model/TaskFinder.php @@ -26,21 +26,6 @@ class TaskFinder extends Base ->eq('is_active', Task::STATUS_CLOSED); } - /** - * Get query for task search - * - * @access public - * @param integer $project_id Project id - * @param string $search Search terms - * @return \PicoDb\Table - */ - public function getSearchQuery($project_id, $search) - { - return $this->getExtendedQuery() - ->eq('project_id', $project_id) - ->ilike('title', '%'.$search.'%'); - } - /** * Get query for assigned user tasks * -- cgit v1.2.3