diff options
author | Frederic Guillot <fred@kanboard.net> | 2017-10-19 16:26:15 -0700 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2017-10-19 16:26:15 -0700 |
commit | 386b4930e5ab8e904c867503e79d56d74821762f (patch) | |
tree | 86e8cbbb9977b4d6b59983635a24ee830c17c81f | |
parent | d5353bfcdcc0a164d3cf4cf8070ac813647b7377 (diff) |
Add tags to task export
-rw-r--r-- | app/Export/TaskExport.php | 16 | ||||
-rw-r--r-- | tests/units/Export/TaskExportTest.php | 5 |
2 files changed, 17 insertions, 4 deletions
diff --git a/app/Export/TaskExport.php b/app/Export/TaskExport.php index 3019906d..f0685576 100644 --- a/app/Export/TaskExport.php +++ b/app/Export/TaskExport.php @@ -30,11 +30,13 @@ class TaskExport extends Base public function export($project_id, $from, $to) { $tasks = $this->getTasks($project_id, $from, $to); + $taskIds = array_column($tasks, 'id'); + $tags = $this->taskTagModel->getTagsByTaskIds($taskIds); $colors = $this->colorModel->getList(); $results = array($this->getColumns()); foreach ($tasks as &$task) { - $task = $this->format($task, $colors); + $task = $this->format($task, $colors, $tags); $results[] = array_values($task); } @@ -104,14 +106,16 @@ class TaskExport extends Base * * @access protected * @param array $task - * @param array $colors + * @param array $colors + * @param array $tags * @return array */ - protected function format(array &$task, array $colors) + protected function format(array &$task, array $colors, array &$tags) { $task['is_active'] = $task['is_active'] == TaskModel::STATUS_OPEN ? e('Open') : e('Closed'); $task['color_id'] = $colors[$task['color_id']]; $task['score'] = $task['score'] ?: 0; + $task['tags'] = ''; $task = $this->dateParser->format( $task, @@ -119,6 +123,11 @@ class TaskExport extends Base $this->dateParser->getUserDateTimeFormat() ); + if (isset($tags[$task['id']])) { + $taskTags = array_column($tags[$task['id']], 'name'); + $task['tags'] = implode(', ', $taskTags); + } + return $task; } @@ -154,6 +163,7 @@ class TaskExport extends Base e('Time estimated'), e('Time spent'), e('Priority'), + e('Tags'), ); } } diff --git a/tests/units/Export/TaskExportTest.php b/tests/units/Export/TaskExportTest.php index c57c5259..ca0fb8de 100644 --- a/tests/units/Export/TaskExportTest.php +++ b/tests/units/Export/TaskExportTest.php @@ -37,12 +37,13 @@ class TaskExportTest extends Base 'swimlane_id' => 2, 'title' => 'Task 2', 'date_due' => time(), + 'tags' => array('tag 1', 'tag 2'), ))); $report = $taskExport->export(1, date('Y-m-d'), date('Y-m-d')); $this->assertCount(3, $report); - $this->assertCount(23, $report[0]); + $this->assertCount(24, $report[0]); $this->assertEquals('Task Id', $report[0][0]); $this->assertEquals(1, $report[1][0]); @@ -77,5 +78,7 @@ class TaskExportTest extends Base $this->assertEquals(2.5, $report[1][20]); $this->assertEquals(0, $report[2][20]); + + $this->assertEquals('tag 1, tag 2', $report[2][23]); } } |