From 68e3a44614bbda767ff2e90ad88c418c3cc77f1d Mon Sep 17 00:00:00 2001
From: fred-fri <fred-fri@dsv.su.se>
Date: Fri, 25 May 2012 17:38:48 +0900
Subject: [PATCH 1/3] trying to make querying by head supervisor name work

---
 .../serviceimpls/ProjectServiceImpl.java           | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

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..5e88944a13 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
@@ -128,6 +129,17 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl
         return QProject.project.title.contains(searchTerm);
     }
 
+    private BooleanExpression headSupervisorFirstNameContains(String searchTerm){
+        if (QProject.project.headSupervisor.isNotNull()){
+
+        }
+        return QProject.project.headSupervisor.user.firstName.contains(searchTerm);
+    }
+    private BooleanExpression headSupervisorLastNameContains(String searchTerm){
+        return QProject.project.headSupervisor.user.lastName.contains(searchTerm);
+    }
+
+
     private BooleanExpression hasProjectClass(ProjectClass pc) {
         if (pc != null)
             return QProject.project.projectClass.eq(pc);

From ff755e7acdbc0cbe5fc8fdd4f7b7e583cc0ed56a Mon Sep 17 00:00:00 2001
From: fred-fri <fred-fri@dsv.su.se>
Date: Tue, 29 May 2012 17:09:31 +0900
Subject: [PATCH 2/3] searching projects on head supervisor works now

---
 .../se/su/dsv/scipro/data/dataobjects/Project.java  |  4 +++-
 .../springdata/serviceimpls/ProjectServiceImpl.java | 13 +++++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

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 5e88944a13..43c36ff6c8 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
@@ -126,17 +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){
-        if (QProject.project.headSupervisor.isNotNull()){
-
-        }
-        return QProject.project.headSupervisor.user.firstName.contains(searchTerm);
+//        if (QProject.project.headSupervisor.isNotNull()){
+//
+//        }
+        return QProject.project.headSupervisor.user.firstName.containsIgnoreCase(searchTerm);
     }
+
     private BooleanExpression headSupervisorLastNameContains(String searchTerm){
-        return QProject.project.headSupervisor.user.lastName.contains(searchTerm);
+        return QProject.project.headSupervisor.user.lastName.containsIgnoreCase(searchTerm);
     }
 
 

From 84dccfd927f4d3b0b78ec35283edcd4a20bc9833 Mon Sep 17 00:00:00 2001
From: fred-fri <fred-fri@dsv.su.se>
Date: Tue, 29 May 2012 17:09:47 +0900
Subject: [PATCH 3/3] cleanup

---
 .../dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java | 3 ---
 1 file changed, 3 deletions(-)

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 43c36ff6c8..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
@@ -130,9 +130,6 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl
     }
 
     private BooleanExpression headSupervisorFirstNameContains(String searchTerm){
-//        if (QProject.project.headSupervisor.isNotNull()){
-//
-//        }
         return QProject.project.headSupervisor.user.firstName.containsIgnoreCase(searchTerm);
     }