From 7b9733f67208a97fbf05d34ea449126794f781df Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 27 Jun 2015 23:08:11 -0400 Subject: Fix task filter issue --- app/Model/TaskFilter.php | 3 ++- app/Model/TaskLink.php | 6 +++++- tests/units/TaskFilterTest.php | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 tests/units/TaskFilterTest.php diff --git a/app/Model/TaskFilter.php b/app/Model/TaskFilter.php index e99f36fb..bd03a8bc 100644 --- a/app/Model/TaskFilter.php +++ b/app/Model/TaskFilter.php @@ -56,6 +56,7 @@ class TaskFilter extends Base { $filter = clone($this); $filter->query = clone($this->query); + $filter->query->condition = clone($this->query->condition); return $filter; } @@ -301,7 +302,7 @@ class TaskFilter extends Base */ public function toAutoCompletion() { - return $this->query->columns('id', 'title')->callback(function(array $results) { + return $this->query->columns(Task::TABLE.'.id', Task::TABLE.'.title')->callback(function(array $results) { foreach ($results as &$result) { $result['value'] = $result['title']; diff --git a/app/Model/TaskLink.php b/app/Model/TaskLink.php index a89e6ca3..7d3a8918 100644 --- a/app/Model/TaskLink.php +++ b/app/Model/TaskLink.php @@ -82,7 +82,11 @@ class TaskLink extends Base ->join(Task::TABLE, 'id', 'opposite_task_id') ->join(Board::TABLE, 'id', 'column_id', Task::TABLE) ->join(User::TABLE, 'id', 'owner_id', Task::TABLE) - ->orderBy(Link::TABLE.'.id ASC, '.Board::TABLE.'.position DESC, '.Task::TABLE.'.is_active DESC, '.Task::TABLE.'.position ASC, '.Task::TABLE.'.id', Table::SORT_ASC) + ->asc(Link::TABLE.'.id') + ->desc(Board::TABLE.'.position') + ->desc(Task::TABLE.'.is_active') + ->asc(Task::TABLE.'.position') + ->asc(Task::TABLE.'.id') ->findAll(); } diff --git a/tests/units/TaskFilterTest.php b/tests/units/TaskFilterTest.php new file mode 100644 index 00000000..1872d429 --- /dev/null +++ b/tests/units/TaskFilterTest.php @@ -0,0 +1,19 @@ +container); + $filter1 = $tf->create(); + $filter2 = $tf->copy(); + + $this->assertTrue($filter1 !== $filter2); + $this->assertTrue($filter1->query !== $filter2->query); + $this->assertTrue($filter1->query->condition !== $filter2->query->condition); + } +} -- cgit v1.2.3