diff --git a/src/main/java/tech/ailef/dbadmin/external/controller/DataExportController.java b/src/main/java/tech/ailef/dbadmin/external/controller/DataExportController.java index fdf4ad2..9b82e93 100644 --- a/src/main/java/tech/ailef/dbadmin/external/controller/DataExportController.java +++ b/src/main/java/tech/ailef/dbadmin/external/controller/DataExportController.java @@ -48,13 +48,11 @@ public class DataExportController { Set queryFilters = Utils.computeFilters(schema, otherParams); - System.out.println("QF = " + queryFilters); - List results = repository.search(schema, query, queryFilters); String result = toCsv(results, schema.getSortedFields()); return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, - "attachment; filename=\"export_" + schema.getClass().getSimpleName() + ".csv\"") + "attachment; filename=\"export_" + schema.getJavaClass().getSimpleName() + ".csv\"") .body(result.getBytes()); } @@ -63,14 +61,21 @@ public class DataExportController { StringWriter sw = new StringWriter(); + String[] header = fields.stream().map(f -> f.getName()).toArray(String[]::new); + CSVFormat csvFormat = CSVFormat.DEFAULT.builder() -// .setHeader(HEADERS) + .setHeader(header) .build(); try (final CSVPrinter printer = new CSVPrinter(sw, csvFormat)) { for (DbObject item : items) { printer.printRecord(fields.stream().map(f -> { - return item.get(f).getFormattedValue(); + if (f.isForeignKey()) { + DbObject linkedItem = item.traverse(f); + return linkedItem.getPrimaryKeyValue() + " (" + linkedItem.getDisplayName() + ")"; + } else { + return item.get(f).getFormattedValue(); + } })); } diff --git a/src/main/resources/templates/model/list.html b/src/main/resources/templates/model/list.html index 666f90b..ac0dc92 100644 --- a/src/main/resources/templates/model/list.html +++ b/src/main/resources/templates/model/list.html @@ -6,6 +6,7 @@