← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 14291: TEI search, case insentivity

 

------------------------------------------------------------
revno: 14291
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2014-03-19 12:22:26 +0100
message:
  TEI search, case insentivity
modified:
  dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java
  dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java	2014-03-18 16:11:21 +0000
+++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java	2014-03-19 11:22:26 +0000
@@ -140,6 +140,10 @@
     // Implementation methods
     // -------------------------------------------------------------------------
 
+    //TODO queries with multiple words
+    //TODO case sensitivity
+    //TODO lower index on attribute value?
+    
     @Override
     public Grid getTrackedEntityInstances( TrackedEntityInstanceQueryParams params )
     {

=== modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java	2014-03-18 16:11:21 +0000
+++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java	2014-03-19 11:22:26 +0000
@@ -51,6 +51,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.hibernate.Criteria;
@@ -169,7 +170,9 @@
             
             if ( !params.isOrQuery() && item.hasFilter() )
             {
-                sql += "and " + col + ".value " + item.getSqlOperator() + " " + item.getSqlFilter( filter ) + " ";
+                String queryCol = item.isNumeric() ? ( col + ".value" ) : "lower(" + col + ".value)";
+                
+                sql += "and " + queryCol + item.getSqlOperator() + " " + StringUtils.lowerCase( item.getSqlFilter( filter ) ) + " ";
             }
         }
         
@@ -216,7 +219,7 @@
                 String col = statementBuilder.columnQuote( item.getItemId() );
                 String query = statementBuilder.encode( params.getQuery(), false );
                 
-                sql += col + ".value = '" + query + "' or ";
+                sql += "lower(" + col + ".value) = '" + StringUtils.lowerCase( query ) + "' or ";
             }
             
             sql = sql.substring( 0, sql.length() - 3 ) + ") "; // Remove last or