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

Commit 8f03159

Browse files
authored
Merge pull request SORMAS-Foundation#3345 from hzi-braunschweig/bugfix-3259-CampaignDashboardElementNullFix
SORMAS-Foundation#3259 - add validation also when fetching dashboard elements to avoid…
2 parents 515283e + d514077 commit 8f03159

3 files changed

Lines changed: 17 additions & 4 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/campaign/CampaignFacadeEjb.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,12 +243,15 @@ public CampaignDto getByUuid(String uuid) {
243243
public List<CampaignDashboardElement> getCampaignDashboardElements(String campaignUuid) {
244244
final List<CampaignDashboardElement> result = new ArrayList<>();
245245
if (campaignUuid != null) {
246-
List<CampaignDashboardElement> dashboardElements = campaignService.getByUuid(campaignUuid).getDashboardElements();
246+
final Campaign campaign = campaignService.getByUuid(campaignUuid);
247+
validate(toDto(campaign));
248+
List<CampaignDashboardElement> dashboardElements = campaign.getDashboardElements();
247249
if (dashboardElements != null) {
248250
result.addAll(dashboardElements);
249251
}
250252
} else {
251-
campaignService.getAll().forEach(campaign -> {
253+
campaignService.getAllActive().forEach(campaign -> {
254+
validate(toDto(campaign));
252255
if (campaign.getDashboardElements() != null) {
253256
result.addAll(campaign.getDashboardElements());
254257
}

sormas-backend/src/main/java/de/symeda/sormas/backend/campaign/CampaignService.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import de.symeda.sormas.api.EntityRelevanceStatus;
1515
import de.symeda.sormas.api.campaign.CampaignCriteria;
1616
import de.symeda.sormas.api.utils.DataHelper;
17-
import de.symeda.sormas.backend.campaign.data.CampaignFormData;
18-
import de.symeda.sormas.backend.caze.Case;
1917
import de.symeda.sormas.backend.common.AbstractAdoService;
2018
import de.symeda.sormas.backend.common.AbstractCoreAdoService;
2119
import de.symeda.sormas.backend.common.AbstractDomainObject;
@@ -115,4 +113,15 @@ public List<Campaign> getAllAfter(Date since, User user) {
115113
List<Campaign> resultList = em.createQuery(cq).getResultList();
116114
return resultList;
117115
}
116+
117+
public List<Campaign> getAllActive() {
118+
119+
CriteriaBuilder cb = em.getCriteriaBuilder();
120+
CriteriaQuery<Campaign> cq = cb.createQuery(getElementClass());
121+
Root<Campaign> from = cq.from(getElementClass());
122+
cq.where(cb.isFalse(from.get(Campaign.DELETED)));
123+
cq.orderBy(cb.desc(from.get(AbstractDomainObject.CHANGE_DATE)));
124+
125+
return em.createQuery(cq).getResultList();
126+
}
118127
}

sormas-ui/src/main/java/de/symeda/sormas/ui/campaign/campaigns/CampaignDashboardElementsGridComponent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ protected Binder<CampaignDashboardElement> addColumnsBinder(List<CampaignDashboa
3333

3434
final List<String> existingDiagramIds = allElements.stream()
3535
.map(campaignDiagramDefinitionDto -> campaignDiagramDefinitionDto.getDiagramId())
36+
.filter(s -> StringUtils.isNotEmpty(s))
3637
.distinct()
3738
.collect(Collectors.toList());
3839
final ComboBox<String> diagramIdCombo = new ComboBox<>(Captions.campaignDashboardChart, existingDiagramIds);

0 commit comments

Comments
 (0)