diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java index bff1b9652c..5d17b6c258 100644 --- a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java @@ -1,5 +1,6 @@ package se.su.dsv.scipro.data.dataobjects; +import com.mysema.query.annotations.QueryInit; import org.apache.wicket.markup.html.panel.Panel; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; @@ -51,8 +52,9 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz @Sort(type=SortType.NATURAL) //Required by hibernate private SortedSet<ProjectFollower> projectFollowers = new TreeSet<ProjectFollower>(); - @ManyToOne + @ManyToOne @SortableField + @QueryInit({"user"}) private Employee headSupervisor; @OneToOne(mappedBy="project", orphanRemoval = true) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index 673cc66625..3af44a6f31 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -53,7 +53,8 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl @Override public Page<Project> find(String filterString, Pageable pageable) { - return projectRepo.findAll(titleContains(filterString), pageable); +// return projectRepo.findAll(titleContains(filterString), pageable); + return projectRepo.findAll(titleContains(filterString).or(headSupervisorFirstNameContains(filterString).or(headSupervisorLastNameContains(filterString))), pageable); } @Override @@ -125,9 +126,18 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl } private BooleanExpression titleContains(String searchTerm) { - return QProject.project.title.contains(searchTerm); + return QProject.project.title.containsIgnoreCase(searchTerm); } + private BooleanExpression headSupervisorFirstNameContains(String searchTerm){ + return QProject.project.headSupervisor.user.firstName.containsIgnoreCase(searchTerm); + } + + private BooleanExpression headSupervisorLastNameContains(String searchTerm){ + return QProject.project.headSupervisor.user.lastName.containsIgnoreCase(searchTerm); + } + + private BooleanExpression hasProjectClass(ProjectClass pc) { if (pc != null) return QProject.project.projectClass.eq(pc);