dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #21753
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10387: Analytics, fixed bug with xls response
------------------------------------------------------------
revno: 10387
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2013-03-21 16:07:48 +0100
message:
Analytics, fixed bug with xls response
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Grid.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/ListGrid.java
dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/grid/GridTest.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AnalyticsController.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-api/src/main/java/org/hisp/dhis/common/Grid.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Grid.java 2013-03-19 17:54:54 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/Grid.java 2013-03-21 15:07:48 +0000
@@ -246,8 +246,10 @@
/**
* Substitutes the values in the meta columns with the mapped value in the
* meta-data map.
+ *
+ * @param metaDataMap meta-data map of keys and substitutions.
*/
- Grid substituteMetaData();
+ Grid substituteMetaData( Map<Object, Object> metaDataMap );
/**
* Adds a set of headers based on the column names of the given SQL result set.
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2013-03-07 21:00:55 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java 2013-03-21 15:07:48 +0000
@@ -35,6 +35,8 @@
public interface AnalyticsService
{
+ final String NAMES_META_KEY = "names";
+
Grid getAggregatedDataValues( DataQueryParams params );
Map<String, Double> getAggregatedDataValueMap( DataQueryParams params );
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-03-20 13:27:21 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-03-21 15:07:48 +0000
@@ -116,7 +116,6 @@
private static final Log log = LogFactory.getLog( DefaultAnalyticsService.class );
private static final String VALUE_HEADER_NAME = "Value";
- private static final String NAMES_META_KEY = "names";
private static final int PERCENT = 100;
private static final int MAX_QUERIES = 8;
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/ListGrid.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/ListGrid.java 2013-03-19 17:54:54 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/ListGrid.java 2013-03-21 15:07:48 +0000
@@ -531,9 +531,9 @@
return this;
}
- public Grid substituteMetaData()
+ public Grid substituteMetaData( Map<Object, Object> metaDataMap )
{
- if ( metaData == null || headers == null || headers.isEmpty() )
+ if ( metaDataMap == null || headers == null || headers.isEmpty() )
{
return this;
}
@@ -546,7 +546,7 @@
{
// Header
- Object headerMetaName = metaData.get( header.getName() );
+ Object headerMetaName = metaDataMap.get( header.getName() );
if ( headerMetaName != null )
{
@@ -561,7 +561,7 @@
{
Object object = col.get( rowIndex );
- Object meta = metaData.get( object );
+ Object meta = metaDataMap.get( object );
if ( meta != null )
{
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/grid/GridTest.java'
--- dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/grid/GridTest.java 2013-03-19 17:54:54 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/grid/GridTest.java 2013-03-21 15:07:48 +0000
@@ -97,15 +97,13 @@
metaData.put( 12, "Twelve" );
metaData.put( 21, "TwentyOne" );
metaData.put( 22, "TwentyTwo" );
-
- grid.setMetaData( metaData );
-
+
assertEquals( 11, grid.getValue( 0, 0 ) );
assertEquals( 12, grid.getValue( 0, 1 ) );
assertEquals( 21, grid.getValue( 1, 0 ) );
assertEquals( 22, grid.getValue( 1, 1 ) );
- grid.substituteMetaData();
+ grid.substituteMetaData( metaData );
assertEquals( "Eleven", grid.getValue( 0, 0 ) );
assertEquals( "Twelve", grid.getValue( 0, 1 ) );
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AnalyticsController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AnalyticsController.java 2013-03-07 10:31:15 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AnalyticsController.java 2013-03-21 15:07:48 +0000
@@ -28,6 +28,7 @@
*/
import java.io.IOException;
+import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
@@ -49,6 +50,8 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
+import static org.hisp.dhis.analytics.AnalyticsService.NAMES_META_KEY;
+
@Controller
public class AnalyticsController
{
@@ -114,7 +117,7 @@
contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING );
Grid grid = analyticsService.getAggregatedDataValues( params );
- GridUtils.toHtml( grid.substituteMetaData(), response.getWriter() );
+ GridUtils.toHtml( substituteMetaData( grid ), response.getWriter() );
}
@RequestMapping( value = RESOURCE_PATH + ".csv", method = RequestMethod.GET )
@@ -130,7 +133,7 @@
contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_CSV, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.csv", true );
Grid grid = analyticsService.getAggregatedDataValues( params );
- GridUtils.toCsv( grid.substituteMetaData(), response.getOutputStream() );
+ GridUtils.toCsv( substituteMetaData( grid ), response.getOutputStream() );
}
@RequestMapping( value = RESOURCE_PATH + ".xls", method = RequestMethod.GET )
@@ -146,7 +149,7 @@
contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_EXCEL, CacheStrategy.RESPECT_SYSTEM_SETTING, "data.xls", true );
Grid grid = analyticsService.getAggregatedDataValues( params );
- GridUtils.toXls( grid.substituteMetaData(), response.getOutputStream() );
+ GridUtils.toXls( substituteMetaData( grid ), response.getOutputStream() );
}
// -------------------------------------------------------------------------
@@ -159,4 +162,19 @@
{
ContextUtils.conflictResponse( response, ex.getMessage() );
}
+
+ // -------------------------------------------------------------------------
+ // Supportive methods
+ // -------------------------------------------------------------------------
+
+ @SuppressWarnings("unchecked")
+ private Grid substituteMetaData( Grid grid )
+ {
+ if ( grid.getMetaData() != null && grid.getMetaData().containsKey( NAMES_META_KEY ) )
+ {
+ grid.substituteMetaData( (Map<Object, Object>) grid.getMetaData().get( NAMES_META_KEY ) );
+ }
+
+ return grid;
+ }
}