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 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'app/Model/TaskFilter.php') 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 * -- cgit v1.2.3