Project filter on "Public DMPs" now exposes only the ones associated with public DMPs (Ticket #79)
This commit is contained in:
parent
09d85f1485
commit
62d681d022
|
@ -10,11 +10,11 @@ public class ProjectCriteria extends Criteria<Project> {
|
||||||
private Date periodEnd;
|
private Date periodEnd;
|
||||||
private String reference;
|
private String reference;
|
||||||
private Integer projectStateType;
|
private Integer projectStateType;
|
||||||
|
private boolean isPublic;
|
||||||
|
|
||||||
public Date getPeriodStart() {
|
public Date getPeriodStart() {
|
||||||
return periodStart;
|
return periodStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPeriodStart(Date periodStart) {
|
public void setPeriodStart(Date periodStart) {
|
||||||
this.periodStart = periodStart;
|
this.periodStart = periodStart;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ public class ProjectCriteria extends Criteria<Project> {
|
||||||
public Date getPeriodEnd() {
|
public Date getPeriodEnd() {
|
||||||
return periodEnd;
|
return periodEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPeriodEnd(Date periodEnd) {
|
public void setPeriodEnd(Date periodEnd) {
|
||||||
this.periodEnd = periodEnd;
|
this.periodEnd = periodEnd;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +29,6 @@ public class ProjectCriteria extends Criteria<Project> {
|
||||||
public String getReference() {
|
public String getReference() {
|
||||||
return reference;
|
return reference;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setReference(String reference) {
|
public void setReference(String reference) {
|
||||||
this.reference = reference;
|
this.reference = reference;
|
||||||
}
|
}
|
||||||
|
@ -38,8 +36,14 @@ public class ProjectCriteria extends Criteria<Project> {
|
||||||
public Integer getProjectStateType() {
|
public Integer getProjectStateType() {
|
||||||
return projectStateType;
|
return projectStateType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProjectStateType(Integer projectStateType) {
|
public void setProjectStateType(Integer projectStateType) {
|
||||||
this.projectStateType = projectStateType;
|
this.projectStateType = projectStateType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPublic() {
|
||||||
|
return isPublic;
|
||||||
|
}
|
||||||
|
public void setPublic(boolean aPublic) {
|
||||||
|
isPublic = aPublic;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ public class DMPDaoImpl extends DatabaseAccess<DMP> implements DMPDao {
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryableList<DMP> getAuthenticated(QueryableList<DMP> query, UUID principal) {
|
public QueryableList<DMP> getAuthenticated(QueryableList<DMP> query, UUID principal) {
|
||||||
query.where((builder, root) -> builder.or(builder.equal(root.get("creator").get("id"), principal), builder.equal(root.join("users", JoinType.LEFT).get("id"), principal)));
|
query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).join("user").get("id"), principal));
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package eu.eudat.data.dao.entities;
|
||||||
import eu.eudat.data.dao.DatabaseAccess;
|
import eu.eudat.data.dao.DatabaseAccess;
|
||||||
import eu.eudat.data.dao.criteria.ProjectCriteria;
|
import eu.eudat.data.dao.criteria.ProjectCriteria;
|
||||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||||
|
import eu.eudat.data.entities.DMP;
|
||||||
import eu.eudat.data.entities.Project;
|
import eu.eudat.data.entities.Project;
|
||||||
import eu.eudat.data.entities.UserInfo;
|
import eu.eudat.data.entities.UserInfo;
|
||||||
import eu.eudat.queryable.QueryableList;
|
import eu.eudat.queryable.QueryableList;
|
||||||
|
@ -45,6 +46,9 @@ public class ProjectDaoImpl extends DatabaseAccess<Project> implements ProjectDa
|
||||||
builder.or(builder.greaterThan(root.get("enddate"), new Date())
|
builder.or(builder.greaterThan(root.get("enddate"), new Date())
|
||||||
, builder.isNull(root.get("enddate"))));
|
, builder.isNull(root.get("enddate"))));
|
||||||
}
|
}
|
||||||
|
if (criteria.isPublic()) {
|
||||||
|
query.where((builder, root) -> builder.equal(root.join("dmps").get("status"), DMP.DMPStatus.FINALISED.getValue())).distinct();
|
||||||
|
}
|
||||||
query.where((builder, root) -> builder.notEqual(root.get("status"), Project.Status.DELETED.getValue()));
|
query.where((builder, root) -> builder.notEqual(root.get("status"), Project.Status.DELETED.getValue()));
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,7 @@ public class ProjectManager {
|
||||||
|
|
||||||
public DataTableData<eu.eudat.models.data.project.ProjectListingModel> getPublicPaged(ProjectTableRequest projectTableRequest) throws Exception {
|
public DataTableData<eu.eudat.models.data.project.ProjectListingModel> getPublicPaged(ProjectTableRequest projectTableRequest) throws Exception {
|
||||||
ProjectDao projectRepository = databaseRepository.getProjectDao();
|
ProjectDao projectRepository = databaseRepository.getProjectDao();
|
||||||
|
projectTableRequest.getCriteria().setPublic(true);
|
||||||
QueryableList<eu.eudat.data.entities.Project> items = projectRepository.getWithCriteria(projectTableRequest.getCriteria());
|
QueryableList<eu.eudat.data.entities.Project> items = projectRepository.getWithCriteria(projectTableRequest.getCriteria());
|
||||||
QueryableList<eu.eudat.data.entities.Project> pagedItems = PaginationManager.applyPaging(items, projectTableRequest);
|
QueryableList<eu.eudat.data.entities.Project> pagedItems = PaginationManager.applyPaging(items, projectTableRequest);
|
||||||
DataTableData<eu.eudat.models.data.project.ProjectListingModel> dataTable = new DataTableData<>();
|
DataTableData<eu.eudat.models.data.project.ProjectListingModel> dataTable = new DataTableData<>();
|
||||||
|
|
Loading…
Reference in New Issue