Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit a2efc04

Browse files
SORMAS-Foundation#2993 add CountryIndexDto, use CountryDto for import
1 parent 22464f0 commit a2efc04

12 files changed

Lines changed: 116 additions & 29 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Captions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public interface Captions {
5151
String actionGenerate = "actionGenerate";
5252
String actionHide = "actionHide";
5353
String actionImport = "actionImport";
54+
String actionImportAllCountries = "actionImportAllCountries";
5455
String actionLeaveBulkEditMode = "actionLeaveBulkEditMode";
5556
String actionLogout = "actionLogout";
5657
String actionMerge = "actionMerge";
@@ -1782,5 +1783,4 @@ public interface Captions {
17821783
String WeeklyReportRegionSummary_officers = "WeeklyReportRegionSummary.officers";
17831784
String WeeklyReportRegionSummary_officerZeroReports = "WeeklyReportRegionSummary.officerZeroReports";
17841785
String weeklyReportsInDistrict = "weeklyReportsInDistrict";
1785-
String actionImportAllCountries = "actionImportAllCountries";
17861786
}

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Strings.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,7 @@ public interface Strings {
533533
String headingEditCases = "headingEditCases";
534534
String headingEditClinicalVisit = "headingEditClinicalVisit";
535535
String headingEditContacts = "headingEditContacts";
536+
String headingEditCountry = "headingEditCountry";
536537
String headingEditEventParticipant = "headingEditEventParticipant";
537538
String headingEditEvents = "headingEditEvents";
538539
String headingEditLineListing = "headingEditLineListing";
@@ -565,6 +566,7 @@ public interface Strings {
565566
String headingHealthConditions = "headingHealthConditions";
566567
String headingHospitalization = "headingHospitalization";
567568
String headingHowToMergeCases = "headingHowToMergeCases";
569+
String headingImportAllCountries = "headingImportAllCountries";
568570
String headingImportAreas = "headingImportAreas";
569571
String headingImportCampaign = "headingImportCampaign";
570572
String headingImportCaseContacts = "headingImportCaseContacts";
@@ -706,6 +708,7 @@ public interface Strings {
706708
String infoEditExportConfiguration = "infoEditExportConfiguration";
707709
String infoExportNoFilters = "infoExportNoFilters";
708710
String infoHowToMergeCases = "infoHowToMergeCases";
711+
String infoImportAllCountries = "infoImportAllCountries";
709712
String infoImportCsvFile = "infoImportCsvFile";
710713
String infoImportProcess = "infoImportProcess";
711714
String infoImportSimilarity = "infoImportSimilarity";
@@ -1080,6 +1083,4 @@ public interface Strings {
10801083
String years = "years";
10811084
String yes = "yes";
10821085
String yesterday = "yesterday";
1083-
String headingImportAllCountries = "headingImportAllCountries";
1084-
String infoImportAllCountries = "infoImportAllCountries";
10851086
}

sormas-api/src/main/java/de/symeda/sormas/api/region/CountryDto.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@ public class CountryDto extends EntityDto {
99

1010
public static final String I18N_PREFIX = "Country";
1111
public static final String DEFAULT_NAME = "defaultName";
12-
public static final String DISPLAY_NAME = "displayName";
1312
public static final String EXTERNAL_ID = "externalId";
1413
public static final String ISO_CODE = "isoCode";
1514
public static final String UNO_CODE = "unoCode";
1615

1716
private String defaultName;
18-
private String displayName;
1917
private String externalId;
2018
private String isoCode;
2119
private String unoCode;
@@ -29,14 +27,6 @@ public void setDefaultName(String defaultName) {
2927
this.defaultName = defaultName;
3028
}
3129

32-
public String getDisplayName() {
33-
return displayName;
34-
}
35-
36-
public void setDisplayName(String displayName) {
37-
this.displayName = displayName;
38-
}
39-
4030
public String getExternalId() {
4131
return externalId;
4232
}

sormas-api/src/main/java/de/symeda/sormas/api/region/CountryFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public interface CountryFacade {
1313

1414
List<CountryReferenceDto> getByDefaultName(String name, boolean includeArchivedEntities);
1515

16-
List<CountryDto> getIndexList(CountryCriteria criteria, Integer first, Integer max, List<SortProperty> sortProperties);
16+
List<CountryIndexDto> getIndexList(CountryCriteria criteria, Integer first, Integer max, List<SortProperty> sortProperties);
1717

1818
long count(CountryCriteria criteria);
1919

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package de.symeda.sormas.api.region;
2+
3+
import de.symeda.sormas.api.EntityDto;
4+
5+
public class CountryIndexDto extends EntityDto {
6+
7+
private static final long serialVersionUID = 8309822957203823162L;
8+
9+
public static final String I18N_PREFIX = "Country";
10+
public static final String DEFAULT_NAME = "defaultName";
11+
public static final String DISPLAY_NAME = "displayName";
12+
public static final String EXTERNAL_ID = "externalId";
13+
public static final String ISO_CODE = "isoCode";
14+
public static final String UNO_CODE = "unoCode";
15+
16+
private String defaultName;
17+
private String displayName;
18+
private String externalId;
19+
private String isoCode;
20+
private String unoCode;
21+
private boolean archived;
22+
23+
public String getDefaultName() {
24+
return defaultName;
25+
}
26+
27+
public void setDefaultName(String defaultName) {
28+
this.defaultName = defaultName;
29+
}
30+
31+
public String getDisplayName() {
32+
return displayName;
33+
}
34+
35+
public void setDisplayName(String displayName) {
36+
this.displayName = displayName;
37+
}
38+
39+
public String getExternalId() {
40+
return externalId;
41+
}
42+
43+
public void setExternalId(String externalId) {
44+
this.externalId = externalId;
45+
}
46+
47+
public String getIsoCode() {
48+
return isoCode;
49+
}
50+
51+
public void setIsoCode(String isoCode) {
52+
this.isoCode = isoCode;
53+
}
54+
55+
public String getUnoCode() {
56+
return unoCode;
57+
}
58+
59+
public void setUnoCode(String unoCode) {
60+
this.unoCode = unoCode;
61+
}
62+
63+
public boolean isArchived() {
64+
return archived;
65+
}
66+
67+
public void setArchived(boolean archived) {
68+
this.archived = archived;
69+
}
70+
}

sormas-api/src/main/resources/strings.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ headingEditTask = Edit task
325325
headingEditTreatment = Edit treatment
326326
headingEditUser = Edit user
327327
headingEditVisit = Edit visit
328+
headingEditCountry = Edit country
328329
headingEnvironmentalExposure = Environmental Exposure
329330
headingEpiCurve = Epidemiological Curve
330331
headingErrorReportNotAvailable = Error report not available

sormas-backend/src/main/java/de/symeda/sormas/backend/common/StartupShutdownService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,11 @@ private void createImportTemplateFiles() {
695695
logger.error("Could not create area import template .csv file.");
696696
}
697697

698+
try {
699+
importFacade.generateCountryImportTemplateFile();
700+
} catch (IOException e) {
701+
logger.error("Could not create country import template .csv file.");
702+
}
698703
try {
699704
importFacade.generateRegionImportTemplateFile();
700705
} catch (IOException e) {

sormas-backend/src/main/java/de/symeda/sormas/backend/region/CountryFacadeEjb.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import de.symeda.sormas.api.region.CountryCriteria;
2323
import de.symeda.sormas.api.region.CountryDto;
2424
import de.symeda.sormas.api.region.CountryFacade;
25+
import de.symeda.sormas.api.region.CountryIndexDto;
2526
import de.symeda.sormas.api.region.CountryReferenceDto;
2627
import de.symeda.sormas.api.utils.SortProperty;
2728
import de.symeda.sormas.api.utils.ValidationRuntimeException;
@@ -49,7 +50,7 @@ public List<CountryReferenceDto> getByDefaultName(String name, boolean includeAr
4950
}
5051

5152
@Override
52-
public List<CountryDto> getIndexList(CountryCriteria criteria, Integer first, Integer max, List<SortProperty> sortProperties) {
53+
public List<CountryIndexDto> getIndexList(CountryCriteria criteria, Integer first, Integer max, List<SortProperty> sortProperties) {
5354
CriteriaBuilder cb = em.getCriteriaBuilder();
5455
CriteriaQuery<Country> cq = cb.createQuery(Country.class);
5556
Root<Country> country = cq.from(Country.class);
@@ -89,10 +90,10 @@ public List<CountryDto> getIndexList(CountryCriteria criteria, Integer first, In
8990
.setMaxResults(max)
9091
.getResultList()
9192
.stream()
92-
.map(f -> toDto(f))
93+
.map(f -> toIndexDto(f))
9394
.collect(Collectors.toList());
9495
} else {
95-
return em.createQuery(cq).getResultList().stream().map(f -> toDto(f)).collect(Collectors.toList());
96+
return em.createQuery(cq).getResultList().stream().map(f -> toIndexDto(f)).collect(Collectors.toList());
9697
}
9798
}
9899

@@ -160,15 +161,32 @@ public CountryDto toDto(Country entity) {
160161
CountryDto dto = new CountryDto();
161162
DtoHelper.fillDto(dto, entity);
162163

164+
dto.setDefaultName(entity.getDefaultName());
165+
dto.setArchived(entity.isArchived());
166+
dto.setExternalId(entity.getExternalId());
167+
dto.setIsoCode(entity.getIsoCode());
168+
dto.setUnoCode(entity.getUnoCode());
169+
dto.setUuid(entity.getUuid());
170+
171+
return dto;
172+
}
173+
174+
public CountryIndexDto toIndexDto(Country entity) {
175+
if (entity == null) {
176+
return null;
177+
}
178+
CountryIndexDto dto = new CountryIndexDto();
179+
DtoHelper.fillDto(dto, entity);
180+
163181
String isoCode = entity.getIsoCode();
164182
String nameLanguageKey = isoCode != null ? "country." + isoCode.toUpperCase() + ".name" : null;
165183
String displayName = ObjectUtils.firstNonNull(I18nProperties.getString(nameLanguageKey), entity.getDefaultName());
166184
dto.setDisplayName(displayName);
167185
dto.setDefaultName(entity.getDefaultName());
168186
dto.setArchived(entity.isArchived());
169187
dto.setExternalId(entity.getExternalId());
170-
dto.setIsoCode(entity.getIsoCode());
171-
dto.setUnoCode(isoCode);
188+
dto.setIsoCode(isoCode);
189+
dto.setUnoCode(entity.getUnoCode());
172190
dto.setUuid(entity.getUuid());
173191

174192
return dto;

sormas-backend/src/test/java/de/symeda/sormas/backend/region/CountryFacadeEjbTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.List;
88
import java.util.Objects;
99

10+
import de.symeda.sormas.api.region.CountryIndexDto;
1011
import org.junit.Test;
1112

1213
import de.symeda.sormas.api.region.CountryCriteria;
@@ -41,10 +42,11 @@ public void testGetIndexList() {
4142
Country expected = creator.createCountry("Romania", "ROU", "642");
4243
creator.createCountry("Germany", "DEU", "276");
4344
CountryCriteria criteria = new CountryCriteria().nameCodeLike("ROU");
44-
List<CountryDto> actualList = getCountryFacade().getIndexList(criteria, null, null, null);
45+
List<CountryIndexDto> actualList = getCountryFacade().getIndexList(criteria, null, null, null);
4546
assertEquals(1, actualList.size());
46-
CountryDto actual = actualList.get(0);
47-
assertTrue(entityIsEqualToDto(expected, actual));
47+
CountryIndexDto actual = actualList.get(0);
48+
assertEquals(expected.getUuid(), actual.getUuid());
49+
assertEquals(expected.getIsoCode(), actual.getIsoCode());
4850
}
4951

5052
@Test

sormas-ui/src/main/java/de/symeda/sormas/ui/configuration/infrastructure/CountriesGrid.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import de.symeda.sormas.api.i18n.I18nProperties;
1111
import de.symeda.sormas.api.region.CountryCriteria;
1212
import de.symeda.sormas.api.region.CountryDto;
13+
import de.symeda.sormas.api.region.CountryIndexDto;
1314
import de.symeda.sormas.api.user.UserRight;
1415
import de.symeda.sormas.api.utils.SortProperty;
1516
import de.symeda.sormas.ui.ControllerProvider;
@@ -18,12 +19,12 @@
1819
import de.symeda.sormas.ui.utils.FilteredGrid;
1920
import de.symeda.sormas.ui.utils.ViewConfiguration;
2021

21-
public class CountriesGrid extends FilteredGrid<CountryDto, CountryCriteria> {
22+
public class CountriesGrid extends FilteredGrid<CountryIndexDto, CountryCriteria> {
2223

2324
private static final long serialVersionUID = -8192499609737564649L;
2425

2526
public CountriesGrid(CountryCriteria criteria) {
26-
super(CountryDto.class);
27+
super(CountryIndexDto.class);
2728

2829
setSizeFull();
2930

@@ -38,7 +39,7 @@ public CountriesGrid(CountryCriteria criteria) {
3839
setCriteria(criteria);
3940
}
4041

41-
setColumns(CountryDto.ISO_CODE, CountryDto.DISPLAY_NAME, CountryDto.EXTERNAL_ID, CountryDto.UNO_CODE);
42+
setColumns(CountryIndexDto.ISO_CODE, CountryIndexDto.DISPLAY_NAME, CountryIndexDto.EXTERNAL_ID, CountryIndexDto.UNO_CODE);
4243

4344
if (UserProvider.getCurrent().hasUserRight(UserRight.INFRASTRUCTURE_EDIT)) {
4445
addEditColumn(e -> ControllerProvider.getInfrastructureController().editCountry(e.getUuid()));
@@ -55,7 +56,7 @@ public void reload() {
5556

5657
public void setLazyDataProvider() {
5758

58-
DataProvider<CountryDto, CountryCriteria> dataProvider = DataProvider.fromFilteringCallbacks(
59+
DataProvider<CountryIndexDto, CountryCriteria> dataProvider = DataProvider.fromFilteringCallbacks(
5960
query -> FacadeProvider.getCountryFacade()
6061
.getIndexList(
6162
query.getFilter().orElse(null),
@@ -73,7 +74,7 @@ public void setLazyDataProvider() {
7374

7475
public void setEagerDataProvider() {
7576

76-
ListDataProvider<CountryDto> dataProvider =
77+
ListDataProvider<CountryIndexDto> dataProvider =
7778
DataProvider.fromStream(FacadeProvider.getCountryFacade().getIndexList(getCriteria(), null, null, null).stream());
7879
setDataProvider(dataProvider);
7980
setSelectionMode(SelectionMode.MULTI);

0 commit comments

Comments
 (0)