From b76a787972233ff8a6d7bb072723513d9adab5ef Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Mon, 10 May 2021 17:17:08 +0300 Subject: [PATCH] Hide grants without any active dmp --- .../java/eu/eudat/data/dao/criteria/GrantCriteria.java | 9 +++++++++ .../java/eu/eudat/data/dao/entities/GrantDaoImpl.java | 4 ++++ .../java/eu/eudat/logic/managers/DashBoardManager.java | 2 ++ 3 files changed, 15 insertions(+) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java index 20a18d710..1cfd88be7 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/GrantCriteria.java @@ -14,6 +14,7 @@ public class GrantCriteria extends Criteria { private String funderId; private String funderReference; private String exactReference; + private boolean isActive; public Date getPeriodStart() { return periodStart; @@ -71,4 +72,12 @@ public class GrantCriteria extends Criteria { public void setExactReference(String exactReference) { this.exactReference = exactReference; } + + public boolean isActive() { + return isActive; + } + + public void setActive(boolean active) { + isActive = active; + } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java index 0bd5f28f5..336fef1ab 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/GrantDaoImpl.java @@ -52,6 +52,10 @@ public class GrantDaoImpl extends DatabaseAccess implements GrantDao { if (criteria.isPublic()) { query.where((builder, root) -> builder.equal(root.join("dmps").get("status"), DMP.DMPStatus.FINALISED.getValue())).distinct(); } + + if (criteria.isActive()) { + query.where((builder, root) -> builder.notEqual(root.join("dmps").get("status"), DMP.DMPStatus.DELETED.getValue())).distinct(); + } if (criteria.getFunderId() != null && !criteria.getFunderId().trim().isEmpty()) query.where((builder, root) -> builder.equal(root.get("funder").get("id"), UUID.fromString(criteria.getFunderId()))); if (criteria.getFunderReference() != null && !criteria.getFunderReference().isEmpty()) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java index 62b5fa194..b6bf4e918 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DashBoardManager.java @@ -135,6 +135,8 @@ public class DashBoardManager { dataManagementPlanCriteria.setAllVersions(false); GrantCriteria grantCriteria = new GrantCriteria(); + grantCriteria.setActive(true); + List roles = new LinkedList<>(); List finalDmps = dmps; CompletableFuture dmpFuture = dataManagementPlanRepository.getAuthenticated((dmps != null && !dmps.isEmpty()) ? dataManagementPlanRepository.asQueryable().where((builder, root) -> root.get("id").in(finalDmps.stream().map(Dmp::getId).collect(Collectors.toList()))) : dataManagementPlanRepository.getWithCriteria(dataManagementPlanCriteria), principal.getId(), roles).distinct().countAsync()