From 5864c7e127f233761fa4419d026c17af1a38ee33 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Fri, 17 Jul 2020 02:32:39 +0200 Subject: [PATCH] added username to export (#1827) --- .../Base/AbstractSpreadsheetRenderer.php | 20 +++++++++++++ tests/Export/Renderer/CsvRendererTest.php | 29 ++++++++++--------- tests/Export/Timesheet/CsvRendererTest.php | 29 ++++++++++--------- 3 files changed, 50 insertions(+), 28 deletions(-) diff --git a/src/Export/Base/AbstractSpreadsheetRenderer.php b/src/Export/Base/AbstractSpreadsheetRenderer.php index d7a4b209..b6bb48be 100644 --- a/src/Export/Base/AbstractSpreadsheetRenderer.php +++ b/src/Export/Base/AbstractSpreadsheetRenderer.php @@ -72,6 +72,7 @@ abstract class AbstractSpreadsheetRenderer 'rate' => [], 'rate_internal' => [], 'user' => [], + 'username' => [], 'customer' => [], 'project' => [], 'activity' => [], @@ -251,6 +252,25 @@ abstract class AbstractSpreadsheetRenderer }; } + if (isset($columns['username'])) { + if (!isset($columns['username']['render'])) { + $columns['username']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) { + $username = ''; + if (null !== $entity->getUser()) { + $username = $entity->getUser()->getUsername(); + } + $sheet->setCellValueByColumnAndRow($column, $row, $username); + }; + } + if (!isset($columns['username']['header'])) { + $columns['username']['header'] = function (Worksheet $sheet, $row, $column) { + $sheet->setCellValueByColumnAndRow($column, $row, $this->translator->trans('label.name')); + + return 1; + }; + } + } + if (isset($columns['customer']) && !isset($columns['customer']['render'])) { $columns['customer']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) { $customer = ''; diff --git a/tests/Export/Renderer/CsvRendererTest.php b/tests/Export/Renderer/CsvRendererTest.php index 219173df..a8e8e683 100644 --- a/tests/Export/Renderer/CsvRendererTest.php +++ b/tests/Export/Renderer/CsvRendererTest.php @@ -85,25 +85,26 @@ class CsvRendererTest extends AbstractRendererTest 4 => '0', 5 => '', 6 => 'kevin', - 7 => 'Customer Name', - 8 => 'project name', - 9 => 'activity description', - 10 => '', + 7 => 'kevin', + 8 => 'Customer Name', + 9 => 'project name', + 10 => 'activity description', 11 => '', - 12 => 'foo,bar', - 13 => '', - 14 => ' EUR 84.00 ', - 15 => 'meta-bar', - 16 => 'meta-bar2', - 17 => 'customer-bar', - 18 => '', - 19 => 'project-foo2', - 20 => 'activity-bar', + 12 => '', + 13 => 'foo,bar', + 14 => '', + 15 => ' EUR 84.00 ', + 16 => 'meta-bar', + 17 => 'meta-bar2', + 18 => 'customer-bar', + 19 => '', + 20 => 'project-foo2', + 21 => 'activity-bar', ]; self::assertEquals(7, \count($all)); self::assertEquals($expected, $all[5]); self::assertEquals(\count($expected), \count($all[0])); - self::assertEquals('foo', $all[4][12]); + self::assertEquals('foo', $all[4][13]); } } diff --git a/tests/Export/Timesheet/CsvRendererTest.php b/tests/Export/Timesheet/CsvRendererTest.php index f4c53371..e54a52ee 100644 --- a/tests/Export/Timesheet/CsvRendererTest.php +++ b/tests/Export/Timesheet/CsvRendererTest.php @@ -82,25 +82,26 @@ class CsvRendererTest extends AbstractRendererTest 4 => '0', 5 => '', 6 => 'kevin', - 7 => 'Customer Name', - 8 => 'project name', - 9 => 'activity description', - 10 => '', + 7 => 'kevin', + 8 => 'Customer Name', + 9 => 'project name', + 10 => 'activity description', 11 => '', - 12 => 'foo,bar', - 13 => '', - 14 => ' EUR 84.00 ', - 15 => 'meta-bar', - 16 => 'meta-bar2', - 17 => 'customer-bar', - 18 => '', - 19 => 'project-foo2', - 20 => 'activity-bar', + 12 => '', + 13 => 'foo,bar', + 14 => '', + 15 => ' EUR 84.00 ', + 16 => 'meta-bar', + 17 => 'meta-bar2', + 18 => 'customer-bar', + 19 => '', + 20 => 'project-foo2', + 21 => 'activity-bar', ]; self::assertEquals(7, \count($all)); self::assertEquals($expected, $all[5]); self::assertEquals(\count($expected), \count($all[0])); - self::assertEquals('foo', $all[4][12]); + self::assertEquals('foo', $all[4][13]); } }