From a34f83fb3044b51a8cb519a97ad27853ef4a068a Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Fri, 29 Apr 2016 17:44:06 -0400 Subject: Fix bug: closing all tasks by column, also update closed tasks --- ChangeLog | 1 + app/Model/TaskStatus.php | 8 +++++++- tests/units/Model/TaskStatusTest.php | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7bc7d7e1..3246ec98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,7 @@ Improvements: Bug fixes: +* Closing all tasks by column, also update closed tasks * Fixed wrong task link generation within Markdown text * Fixed wrong URL on comment toggle link for sorting * Fixed form submission with Meta+Enter keyboard shortcut diff --git a/app/Model/TaskStatus.php b/app/Model/TaskStatus.php index 2b902815..ac35a96d 100644 --- a/app/Model/TaskStatus.php +++ b/app/Model/TaskStatus.php @@ -83,7 +83,13 @@ class TaskStatus extends Base */ public function closeTasksBySwimlaneAndColumn($swimlane_id, $column_id) { - $task_ids = $this->db->table(Task::TABLE)->eq('swimlane_id', $swimlane_id)->eq('column_id', $column_id)->findAllByColumn('id'); + $task_ids = $this->db + ->table(Task::TABLE) + ->eq('swimlane_id', $swimlane_id) + ->eq('column_id', $column_id) + ->eq(Task::TABLE.'.is_active', Task::STATUS_OPEN) + ->findAllByColumn('id'); + $this->closeMultipleTasks($task_ids); } diff --git a/tests/units/Model/TaskStatusTest.php b/tests/units/Model/TaskStatusTest.php index 86f31d70..aa48be5e 100644 --- a/tests/units/Model/TaskStatusTest.php +++ b/tests/units/Model/TaskStatusTest.php @@ -26,6 +26,9 @@ class TaskStatusTest extends Base $this->assertEquals(2, $tc->create(array('title' => 'test', 'project_id' => 1))); $this->assertEquals(3, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 2))); $this->assertEquals(4, $tc->create(array('title' => 'test', 'project_id' => 1, 'swimlane_id' => 1))); + $this->assertEquals(5, $tc->create(array('title' => 'test', 'project_id' => 1, 'is_active' => 0, 'date_completed' => strtotime('2015-01-01')))); + + $taskBefore = $tf->getById(5); $this->assertEquals(2, $tf->countByColumnAndSwimlaneId(1, 1, 0)); $this->assertEquals(1, $tf->countByColumnAndSwimlaneId(1, 1, 1)); @@ -45,6 +48,10 @@ class TaskStatusTest extends Base $this->assertEquals(0, $tf->countByColumnAndSwimlaneId(1, 1, 0)); $this->assertEquals(0, $tf->countByColumnAndSwimlaneId(1, 1, 1)); $this->assertEquals(0, $tf->countByColumnAndSwimlaneId(1, 2, 0)); + + $taskAfter = $tf->getById(5); + $this->assertEquals(strtotime('2015-01-01'), $taskAfter['date_completed']); + $this->assertEquals($taskBefore['date_modification'], $taskAfter['date_modification']); } public function testStatus() -- cgit v1.2.3