Lars, Will this work as an "anchor date" which will determine other relative periods? So that if you last month of usable data is July-2015, then setting this anchor data to some date in July will result in "last 6 months" being Feb-Jul 2015 and "last 6 months previous year" (if existing) being Feb-Jul 2014? We had this type of anchor date way back in the DHIS 1.3 report generator, and it was useful...
Regards Calle On 26 August 2015 at 13:41, Calle Hedberg <[email protected]> wrote: > Lars, > > Will this work as a sort of > > On 26 August 2015 at 12:43, <[email protected]> wrote: > >> ------------------------------------------------------------ >> revno: 19856 >> committer: Lars Helge Overland <[email protected]> >> branch nick: dhis2 >> timestamp: Wed 2015-08-26 11:42:00 +0200 >> message: >> Analaytics, implementd query parameter relativePeriodDate which will be >> used as basis for relative periods in response >> modified: >> >> 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-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java >> >> dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java >> >> dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java >> >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java >> >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.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-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 >> 2015-08-04 11:09:17 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/AnalyticsService.java >> 2015-08-26 09:42:00 +0000 >> @@ -166,6 +166,7 @@ >> * @param displayProperty the property to display for meta-data. >> * @param outputIdScheme the identifier scheme to use in the query >> response. >> * @param approvalLevel the approval level identifier. >> + * @param relativePeriodDate the date to use as basis for relative >> periods. >> * @param userOrgUnit the user organisation unit to use, overrides >> current user. >> * @param program the program identifier. >> * @param stage the program stage identifier. >> @@ -174,7 +175,7 @@ >> */ >> DataQueryParams getFromUrl( Set<String> dimensionParams, Set<String> >> filterParams, AggregationType aggregationType, String measureCriteria, >> boolean skipMeta, boolean skipData, boolean skipRounding, >> boolean hierarchyMeta, boolean ignoreLimit, boolean hideEmptyRows, boolean >> showHierarchy, >> - DisplayProperty displayProperty, IdentifiableProperty >> outputIdScheme, String approvalLevel, String userOrgUnit, >> + DisplayProperty displayProperty, IdentifiableProperty >> outputIdScheme, String approvalLevel, Date relativePeriodDate, String >> userOrgUnit, >> String program, String stage, I18nFormat format ); >> >> /** >> @@ -190,12 +191,13 @@ >> * Creates a list of DimensionalObject from the given set of >> dimension params. >> * >> * @param dimensionParams the dimension URL params. >> + * @param relativePeriodDate the date to use as basis for relative >> periods. >> * @param userOrgUnit the user organisation unit param, overrides >> current >> * user, can be null. >> * @param format the i18n format. >> * @return a list of DimensionalObject. >> */ >> - List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, String userOrgUnit, I18nFormat format ); >> + List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat >> format ); >> >> /** >> * Returns a persisted DimensionalObject generated from the given >> dimension >> >> === 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 >> 2015-08-21 01:47:02 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java >> 2015-08-26 09:42:00 +0000 >> @@ -910,7 +910,7 @@ >> public DataQueryParams getFromUrl( Set<String> dimensionParams, >> Set<String> filterParams, AggregationType aggregationType, >> String measureCriteria, boolean skipMeta, boolean skipData, >> boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, >> boolean hideEmptyRows, boolean showHierarchy, DisplayProperty >> displayProperty, IdentifiableProperty outputIdScheme, >> - String approvalLevel, String userOrgUnit, String program, String >> stage, I18nFormat format ) >> + String approvalLevel, Date relativePeriodDate, String >> userOrgUnit, String program, String stage, I18nFormat format ) >> { >> DataQueryParams params = new DataQueryParams(); >> >> @@ -919,12 +919,12 @@ >> >> if ( dimensionParams != null && !dimensionParams.isEmpty() ) >> { >> - params.addDimensions( getDimensionalObjects( >> dimensionParams, userOrgUnit, format ) ); >> + params.addDimensions( getDimensionalObjects( >> dimensionParams, relativePeriodDate, userOrgUnit, format ) ); >> } >> >> if ( filterParams != null && !filterParams.isEmpty() ) >> { >> - params.getFilters().addAll( getDimensionalObjects( >> filterParams, userOrgUnit, format ) ); >> + params.getFilters().addAll( getDimensionalObjects( >> filterParams, relativePeriodDate, userOrgUnit, format ) ); >> } >> >> if ( measureCriteria != null && !measureCriteria.isEmpty() ) >> @@ -988,7 +988,7 @@ >> } >> >> @Override >> - public List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, String userOrgUnit, I18nFormat format ) >> + public List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, Date relativePeriodDate, String userOrgUnit, I18nFormat >> format ) >> { >> List<DimensionalObject> list = new ArrayList<>(); >> >> @@ -1003,7 +1003,7 @@ >> >> if ( dimension != null && items != null ) >> { >> - list.add( getDimension( dimension, items, null, >> userOrgUnits, format, false ) ); >> + list.add( getDimension( dimension, items, >> relativePeriodDate, userOrgUnits, format, false ) ); >> } >> } >> } >> >> === modified file >> 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java' >> --- >> dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java >> 2015-08-04 11:09:17 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/MockAnalyticsService.java >> 2015-08-26 09:42:00 +0000 >> @@ -85,7 +85,7 @@ >> @Override >> public DataQueryParams getFromUrl( Set<String> dimensionParams, >> Set<String> filterParams, AggregationType aggregationType, >> String measureCriteria, boolean skipMeta, boolean skipData, >> boolean skipRounding, boolean hierarchyMeta, boolean ignoreLimit, boolean >> hideEmptyRows, >> - boolean showHierarchy, DisplayProperty displayProperty, >> IdentifiableProperty idScheme, String approvalLevel, String userOrgUnit, >> + boolean showHierarchy, DisplayProperty displayProperty, >> IdentifiableProperty idScheme, String approvalLevel, Date >> relativePeriodDate, String userOrgUnit, >> String program, String stage, I18nFormat format ) >> { >> throw new NotImplementedException( "" ); >> @@ -98,7 +98,7 @@ >> } >> >> @Override >> - public List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, String userOrgUnit, I18nFormat format ) >> + public List<DimensionalObject> getDimensionalObjects( Set<String> >> dimensionParams, Date relateivePeriodDate, String userOrgUnit, I18nFormat >> format ) >> { >> throw new NotImplementedException( "" ); >> } >> >> === modified file >> 'dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java' >> --- >> dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java >> 2015-08-04 11:09:17 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-analytics/src/test/java/org/hisp/dhis/analytics/data/AnalyticsServiceTest.java >> 2015-08-26 09:42:00 +0000 >> @@ -193,7 +193,7 @@ >> filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + >> ";" + ouC.getUid() + ";" + ouD.getUid() + ";" + ouE.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 4, params.getDataElements().size() ); >> assertEquals( 3, params.getPeriods().size() ); >> @@ -211,7 +211,7 @@ >> filterParams.add( "ou:" + ouA.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 4, params.getDataElements().size() ); >> assertEquals( 1, params.getFilterOrganisationUnits().size() ); >> @@ -227,7 +227,7 @@ >> filterParams.add( "ou:" + ouA.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 2, params.getDataElements().size() ); >> assertEquals( 2, params.getProgramDataElements().size() ); >> @@ -244,7 +244,7 @@ >> filterParams.add( "ou:" + ouA.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 2, params.getDataElements().size() ); >> assertEquals( 2, params.getProgramAttributes().size() ); >> @@ -263,7 +263,7 @@ >> filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() + >> ";" + ouC.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 3, params.getDataElements().size() ); >> assertEquals( 2, params.getPeriods().size() ); >> @@ -282,7 +282,7 @@ >> filterParams.add( "ou:" + ouA.getUid() + ";" + ouB.getUid() ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, filterParams, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 4, params.getDataElements().size() ); >> assertEquals( 12, params.getPeriods().size() ); >> @@ -298,7 +298,7 @@ >> dimensionParams.add( "pe:2011;2012" ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 1, params.getOrganisationUnits().size() ); >> assertEquals( 2, params.getDataElements().size() ); >> @@ -314,7 +314,7 @@ >> dimensionParams.add( "pe:2011;2012" ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 3, params.getOrganisationUnits().size() ); >> assertEquals( 2, params.getDataElements().size() ); >> @@ -330,7 +330,7 @@ >> dimensionParams.add( "pe:2011;2012" ); >> >> DataQueryParams params = analyticsService.getFromUrl( >> dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> >> assertEquals( 2, params.getOrganisationUnits().size() ); >> assertEquals( 2, params.getDataElements().size() ); >> @@ -345,7 +345,7 @@ >> dimensionParams.add( "pe:2012,2012S1,2012S2" ); >> >> analyticsService.getFromUrl( dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> } >> >> @Test( expected = IllegalQueryException.class ) >> @@ -356,7 +356,7 @@ >> dimensionParams.add( "pe" ); >> >> analyticsService.getFromUrl( dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> } >> >> @Test( expected = IllegalQueryException.class ) >> @@ -367,7 +367,7 @@ >> dimensionParams.add( "ou" ); >> >> analyticsService.getFromUrl( dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> } >> >> @Test( expected = IllegalQueryException.class ) >> @@ -378,7 +378,7 @@ >> dimensionParams.add( "yebo:2012,2012S1,2012S2" ); >> >> analyticsService.getFromUrl( dimensionParams, null, null, null, >> - false, false, false, false, false, false, false, null, null, >> null, null, null, null, null ); >> + false, false, false, false, false, false, false, null, null, >> null, null, null, null, null, null ); >> } >> >> @Test >> >> === modified file >> 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java' >> --- >> dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java >> 2015-08-03 12:01:11 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java >> 2015-08-26 09:42:00 +0000 >> @@ -88,7 +88,7 @@ >> >> if ( dimensions != null ) >> { >> - params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null ) ); >> + params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null, null ) ); >> } >> >> Map<String, Object> map = >> analyticsService.getAggregatedDataValueMapping( params ); >> @@ -137,7 +137,7 @@ >> >> if ( dimensions != null ) >> { >> - params.setFilters( >> analyticsService.getDimensionalObjects( dimensions, null, null ) ); >> + params.setFilters( >> analyticsService.getDimensionalObjects( dimensions, null, null, null ) ); >> } >> >> Map<String, Object> map = >> analyticsService.getAggregatedDataValueMapping( params ); >> @@ -173,7 +173,7 @@ >> >> if ( dimensions != null ) >> { >> - params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null ) ); >> + params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null, null ) ); >> } >> >> Map<String, Object> map = >> analyticsService.getAggregatedDataValueMapping( params ); >> @@ -207,7 +207,7 @@ >> >> if ( dimensions != null ) >> { >> - params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null ) ); >> + params.setFilters( analyticsService.getDimensionalObjects( >> dimensions, null, null, null ) ); >> } >> >> Map<String, Object> map = >> analyticsService.getAggregatedDataValueMapping( params ); >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java' >> --- >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java >> 2015-08-04 11:09:17 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AnalyticsController.java >> 2015-08-26 09:42:00 +0000 >> @@ -30,6 +30,7 @@ >> >> import static >> org.hisp.dhis.common.DimensionalObjectUtils.getItemsFromParam; >> >> +import java.util.Date; >> import java.util.Set; >> >> import javax.servlet.http.HttpServletResponse; >> @@ -91,6 +92,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -100,7 +102,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_JSON, CacheStrategy.RESPECT_SYSTEM_SETTING ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -126,6 +128,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -135,7 +138,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -159,6 +162,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -168,7 +172,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -192,6 +196,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -201,7 +206,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_HTML, CacheStrategy.RESPECT_SYSTEM_SETTING ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -225,6 +230,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -234,7 +240,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_CSV, CacheStrategy.RESPECT_SYSTEM_SETTING, >> "data.csv", true ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -258,6 +264,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -267,7 +274,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_EXCEL, CacheStrategy.RESPECT_SYSTEM_SETTING, >> "data.xls", true ); >> Grid grid = analyticsService.getAggregatedDataValues( params, >> tableLayout, getItemsFromParam( columns ), getItemsFromParam( rows ) ); >> @@ -291,6 +298,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) Integer approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -300,7 +308,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, null, null, >> - true, false, false, false, false, false, false, null, null, >> null, null, null, null, i18nManager.getI18nFormat() ); >> + true, false, false, false, false, false, false, null, null, >> null, null, null, null, null, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_XML, CacheStrategy.RESPECT_SYSTEM_SETTING, >> "data.jrxml", false ); >> Grid grid = analyticsService.getAggregatedDataValues( params ); >> @@ -325,6 +333,7 @@ >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> @RequestParam( required = false ) IdentifiableProperty >> outputIdScheme, >> @RequestParam( required = false ) String approvalLevel, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( required = false ) String program, >> @RequestParam( required = false ) String stage, >> @@ -334,7 +343,7 @@ >> HttpServletResponse response ) throws Exception >> { >> DataQueryParams params = analyticsService.getFromUrl( dimension, >> filter, aggregationType, measureCriteria, skipMeta, skipData, skipRounding, >> hierarchyMeta, >> - ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, userOrgUnit, program, stage, >> i18nManager.getI18nFormat() ); >> + ignoreLimit, hideEmptyRows, showHierarchy, displayProperty, >> outputIdScheme, approvalLevel, relativePeriodDate, userOrgUnit, program, >> stage, i18nManager.getI18nFormat() ); >> >> contextUtils.configureResponse( response, >> ContextUtils.CONTENT_TYPE_TEXT, CacheStrategy.NO_CACHE, "debug.sql", false >> ); >> return AnalyticsUtils.getDebugDataSql( params ); >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java' >> --- >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java >> 2015-08-05 14:30:34 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/GeoFeatureController.java >> 2015-08-26 09:42:00 +0000 >> @@ -32,6 +32,7 @@ >> import java.util.ArrayList; >> import java.util.Collections; >> import java.util.Comparator; >> +import java.util.Date; >> import java.util.HashSet; >> import java.util.List; >> import java.util.Map; >> @@ -100,6 +101,7 @@ >> public void getGeoFeaturesJson( >> @RequestParam String ou, >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( defaultValue = "false", value = >> "includeGroupSets" ) boolean rpIncludeGroupSets, >> @RequestParam Map<String, String> parameters, >> @@ -108,7 +110,7 @@ >> WebOptions options = new WebOptions( parameters ); >> boolean includeGroupSets = "detailed".equals( >> options.getViewClass() ) || rpIncludeGroupSets; >> >> - List<GeoFeature> features = getGeoFeatures( ou, displayProperty, >> userOrgUnit, request, response, includeGroupSets ); >> + List<GeoFeature> features = getGeoFeatures( ou, displayProperty, >> relativePeriodDate, userOrgUnit, request, response, includeGroupSets ); >> >> if ( features == null ) >> { >> @@ -123,6 +125,7 @@ >> public void getGeoFeaturesJsonP( >> @RequestParam String ou, >> @RequestParam( required = false ) DisplayProperty >> displayProperty, >> + @RequestParam( required = false ) Date relativePeriodDate, >> @RequestParam( required = false ) String userOrgUnit, >> @RequestParam( defaultValue = "callback" ) String callback, >> @RequestParam( defaultValue = "false", value = >> "includeGroupSets" ) boolean rpIncludeGroupSets, >> @@ -132,7 +135,7 @@ >> WebOptions options = new WebOptions( parameters ); >> boolean includeGroupSets = "detailed".equals( >> options.getViewClass() ) || rpIncludeGroupSets; >> >> - List<GeoFeature> features = getGeoFeatures( ou, displayProperty, >> userOrgUnit, request, response, includeGroupSets ); >> + List<GeoFeature> features = getGeoFeatures( ou, displayProperty, >> relativePeriodDate, userOrgUnit, request, response, includeGroupSets ); >> >> if ( features == null ) >> { >> @@ -153,20 +156,21 @@ >> * >> * @param ou the organisation unit parameter. >> * @param displayProperty the display property. >> + * @param relativePeriodDate the date to use as basis for relative >> periods. >> * @param userOrgUnit the user organisation unit parameter. >> * @param request the HTTP request. >> * @param response the HTTP response. >> * @param includeGroupSets whether to include organisation unit >> group sets. >> * @return a list of geo features or null. >> */ >> - private List<GeoFeature> getGeoFeatures( String ou, DisplayProperty >> displayProperty, >> + private List<GeoFeature> getGeoFeatures( String ou, DisplayProperty >> displayProperty, Date relativePeriodDate, >> String userOrgUnit, HttpServletRequest request, >> HttpServletResponse response, boolean includeGroupSets ) >> { >> Set<String> set = new HashSet<>(); >> set.add( ou ); >> >> DataQueryParams params = analyticsService.getFromUrl( set, null, >> AggregationType.SUM, null, >> - false, false, false, false, false, false, false, >> displayProperty, null, null, userOrgUnit, null, null, null ); >> + false, false, false, false, false, false, false, >> displayProperty, null, null, relativePeriodDate, userOrgUnit, null, null, >> null ); >> >> DimensionalObject dim = params.getDimension( >> DimensionalObject.ORGUNIT_DIM_ID ); >> >> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~dhis2-devs >> Post to : [email protected] >> Unsubscribe : https://launchpad.net/~dhis2-devs >> More help : https://help.launchpad.net/ListHelp >> >> > > > -- > > ******************************************* > > Calle Hedberg > > 46D Alma Road, 7700 Rosebank, SOUTH AFRICA > > Tel/fax (home): +27-21-685-6472 > > Cell: +27-82-853-5352 > > Iridium SatPhone: +8816-315-19274 > > Email: [email protected] > > Skype: calle_hedberg > > ******************************************* > > -- ******************************************* Calle Hedberg 46D Alma Road, 7700 Rosebank, SOUTH AFRICA Tel/fax (home): +27-21-685-6472 Cell: +27-82-853-5352 Iridium SatPhone: +8816-315-19274 Email: [email protected] Skype: calle_hedberg *******************************************
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

