summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-04-29 17:44:06 -0400
committerFrederic Guillot <fred@kanboard.net>2016-04-29 17:44:06 -0400
commita34f83fb3044b51a8cb519a97ad27853ef4a068a (patch)
treefc32f9f7493c38c0a64efd94bb3ae331f491a62d
parentfc8f8748b9f89167ca9e6f4670bbc5e032e068b7 (diff)
Fix bug: closing all tasks by column, also update closed tasks
-rw-r--r--ChangeLog1
-rw-r--r--app/Model/TaskStatus.php8
-rw-r--r--tests/units/Model/TaskStatusTest.php7
3 files changed, 15 insertions, 1 deletions
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()