RED-10342 - File attributes in CSV export

- add includeToCsvExport field to FileAttributeConfig
- update unit test
This commit is contained in:
corinaolariu 2024-11-27 15:19:26 +02:00
parent 95f1ea4a00
commit b461f95638
6 changed files with 22 additions and 1 deletions

View File

@ -41,6 +41,8 @@ public class FileAttributeConfigEntity {
@Column
private String placeholder;
@Column
private boolean includeInCsvExport;
@Column
@Enumerated(EnumType.STRING)
@Builder.Default
private FileAttributeType type = FileAttributeType.TEXT;

View File

@ -131,6 +131,7 @@ public class FileAttributeConfigPersistenceService {
config.setDisplayedInFileList(fileAttributeConfig.isDisplayedInFileList());
config.setPrimaryAttribute(fileAttributeConfig.isPrimaryAttribute());
config.setFilterable(fileAttributeConfig.isFilterable());
config.setIncludeInCsvExport(fileAttributeConfig.isIncludeInCsvExport());
setPlaceholder(config);
uniqueLabelAndPlaceholder(fileAttributeConfig);
return fileAttributeConfigRepository.save(config);

View File

@ -249,3 +249,5 @@ databaseChangeLog:
file: db/changelog/tenant/152-add-ai-fields-to-entity.yaml
- include:
file: db/changelog/tenant/153-custom-technical-name-change.yaml
- include:
file: db/changelog/tenant/154-add-included-to-csv-export-field.yaml

View File

@ -0,0 +1,12 @@
databaseChangeLog:
- changeSet:
id: add-included-to-csv-export-field
author: colariu
changes:
- addColumn:
columns:
- column:
name: include_in_csv_export
type: BOOLEAN
defaultValue: false
tableName: file_attribute_config

View File

@ -90,7 +90,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
List<FileAttributeConfig> configs = new ArrayList<>();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build());
FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B").build();
FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B").includeInCsvExport(true).build();
configs.add(attributeB);
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D").build());
@ -104,6 +104,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
.findAny()
.get();
assertThat(primaryAttribute.getLabel()).isEqualTo(attributeB.getLabel());
assertTrue(primaryAttribute.isIncludeInCsvExport());
fileAttributeConfigClient.deleteFileAttribute(dossier.getDossierTemplateId(),
loadedConfigs.stream()
@ -132,10 +133,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
newConfig.setId(created.getId());
newConfig.setLabel("Test Attribute Update");
newConfig.setIncludeInCsvExport(true);
var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig);
loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs();
assertThat(loadedConfigs.size()).isEqualTo(4);
assertThat(updated.getLabel()).isEqualTo("Test Attribute Update");
assertTrue(updated.isIncludeInCsvExport());
assertThat(updated.getPlaceholder()).isEqualTo("{{file.attribute.TestAttributeUpdate}}");
assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNull();

View File

@ -26,5 +26,6 @@ public class FileAttributeConfig {
@Builder.Default
private FileAttributeType type = FileAttributeType.TEXT;
private String dossierTemplateId;
private boolean includeInCsvExport;
}