=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportService.java 2012-10-18 19:13:26 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportService.java 2013-05-03 15:06:31 +0000 @@ -28,12 +28,14 @@ */ import java.util.List; +import java.util.Set; import org.hisp.dhis.common.Grid; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.period.Period; /** @@ -52,9 +54,19 @@ * @param format the i18n format. * @return */ - String getCustomDataSetReport( DataSet dataSet, OrganisationUnit unit, Period period, boolean selectedUnitOnly, I18nFormat format ); - - List getCustomDataSetReportAsGrid( DataSet dataSet, OrganisationUnit unit, Period period, + String getCustomDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format ); + + /** + * Generates a list of Grids based on the HTML code for a custom data set report. + * + * @param dataSet the data set. + * @param unit the organisation unit. + * @param period the period. + * @param selectedUnitOnly indicates whether to use captured or aggregated data. + * @param format the i18n format. + * @return + */ + List getCustomDataSetReportAsGrid( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format ); /** @@ -69,7 +81,7 @@ * @param i18n the i18n object. * @return a Grid. */ - Grid getDefaultDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, boolean selectedUnitOnly, I18nFormat format, I18n i18n ); + Grid getDefaultDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format, I18n i18n ); /** * Generates a list of Grids representing a data set report. The data elements @@ -83,5 +95,5 @@ * @param i18n the i18n object. * @return a Grid. */ - List getSectionDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, boolean selectedUnitOnly, I18nFormat format, I18n i18n ); + List getSectionDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format, I18n i18n ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportStore.java 2012-07-19 19:20:26 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/datasetreport/DataSetReportStore.java 2013-05-03 15:06:31 +0000 @@ -28,9 +28,11 @@ */ import java.util.Map; +import java.util.Set; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.period.Period; /** @@ -40,11 +42,11 @@ { final String SEPARATOR = "-"; - Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, boolean rawData ); + Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean rawData ); - Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit ); - - Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit ); - - Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit ); + Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ); + + Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ); + + Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ); } === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2013-05-02 20:51:27 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2013-05-03 15:06:31 +0000 @@ -32,6 +32,7 @@ import static org.hisp.dhis.analytics.DimensionType.ORGANISATIONUNIT; import static org.hisp.dhis.analytics.DimensionType.ORGANISATIONUNIT_GROUPSET; import static org.hisp.dhis.common.IdentifiableObjectUtils.asList; +import static org.hisp.dhis.common.IdentifiableObjectUtils.getList; import static org.hisp.dhis.system.util.CollectionUtils.emptyIfNull; import java.util.ArrayList; @@ -1067,4 +1068,9 @@ { setFilterOptions( ORGUNIT_DIM_ID, DimensionType.ORGANISATIONUNIT, null, organisationUnits ); } + + public void setFilter( String filter, DimensionType type, IdentifiableObject item ) + { + setFilterOptions( filter, type, null, getList( item ) ); + } } === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java 2013-04-25 17:34:28 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/impl/DefaultDataSetReportService.java 2013-05-03 15:06:31 +0000 @@ -60,6 +60,7 @@ import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.period.Period; import org.hisp.dhis.system.filter.AggregatableDataElementFilter; import org.hisp.dhis.system.grid.GridUtils; @@ -100,21 +101,22 @@ // DataSetReportService implementation // ------------------------------------------------------------------------- - public String getCustomDataSetReport( DataSet dataSet, OrganisationUnit unit, Period period, + public String getCustomDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format ) { - Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, selectedUnitOnly ); - valueMap.putAll( dataSetReportStore.getAggregatedTotals( dataSet, period, unit ) ); - - Map indicatorValueMap = dataSetReportStore.getAggregatedIndicatorValues( dataSet, period, unit ); + Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, groups, selectedUnitOnly ); + + valueMap.putAll( dataSetReportStore.getAggregatedTotals( dataSet, period, unit, groups ) ); + + Map indicatorValueMap = dataSetReportStore.getAggregatedIndicatorValues( dataSet, period, unit, groups ); return prepareReportContent( dataSet.getDataEntryForm(), valueMap, indicatorValueMap, format ); } - public List getCustomDataSetReportAsGrid( DataSet dataSet, OrganisationUnit unit, Period period, + public List getCustomDataSetReportAsGrid( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format ) { - String html = getCustomDataSetReport( dataSet, unit, period, selectedUnitOnly, format ); + String html = getCustomDataSetReport( dataSet, period, unit, groups, selectedUnitOnly, format ); try { @@ -126,15 +128,15 @@ } } - public List getSectionDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, + public List getSectionDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format, I18n i18n ) { List
sections = new ArrayList
( dataSet.getSections() ); Collections.sort( sections, new SectionOrderComparator() ); - Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, selectedUnitOnly ); - Map subTotalMap = dataSetReportStore.getAggregatedSubTotals( dataSet, period, unit ); - Map totalMap = dataSetReportStore.getAggregatedTotals( dataSet, period, unit ); + Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, groups, selectedUnitOnly ); + Map subTotalMap = dataSetReportStore.getAggregatedSubTotals( dataSet, period, unit, groups ); + Map totalMap = dataSetReportStore.getAggregatedTotals( dataSet, period, unit, groups ); List grids = new ArrayList(); @@ -235,15 +237,15 @@ return grids; } - public Grid getDefaultDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, boolean selectedUnitOnly, I18nFormat format, I18n i18n ) + public Grid getDefaultDataSetReport( DataSet dataSet, Period period, OrganisationUnit unit, Set groups, boolean selectedUnitOnly, I18nFormat format, I18n i18n ) { List dataElements = new ArrayList( dataSet.getDataElements() ); Collections.sort( dataElements, IdentifiableObjectNameComparator.INSTANCE ); FilterUtils.filter( dataElements, new AggregatableDataElementFilter() ); - Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, selectedUnitOnly ); - Map indicatorValueMap = dataSetReportStore.getAggregatedIndicatorValues( dataSet, period, unit ); + Map valueMap = dataSetReportStore.getAggregatedValues( dataSet, period, unit, groups, selectedUnitOnly ); + Map indicatorValueMap = dataSetReportStore.getAggregatedIndicatorValues( dataSet, period, unit, groups ); // --------------------------------------------------------------------- // Get category option combos === 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 2013-05-02 20:55:43 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/AnalyticsDataSetReportStore.java 2013-05-03 15:06:31 +0000 @@ -34,9 +34,11 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import org.hisp.dhis.analytics.AnalyticsService; import org.hisp.dhis.analytics.DataQueryParams; +import org.hisp.dhis.analytics.DimensionType; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategory; import org.hisp.dhis.dataset.DataSet; @@ -44,6 +46,7 @@ import org.hisp.dhis.datasetreport.DataSetReportStore; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.period.Period; import org.hisp.dhis.system.filter.AggregatableDataElementFilter; import org.hisp.dhis.system.util.FilterUtils; @@ -60,14 +63,14 @@ { this.analyticsService = analyticsService; } - + // ------------------------------------------------------------------------- // DataSetReportStore implementation // ------------------------------------------------------------------------- @Override - public Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, - boolean rawData ) + public Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, + Set groups, boolean rawData ) { List dataElements = new ArrayList( dataSet.getDataElements() ); @@ -85,6 +88,14 @@ params.setOrganisationUnits( getList( unit ) ); params.enableCategoryOptionCombos(); + if ( groups != null && !groups.isEmpty() ) + { + for ( OrganisationUnitGroup group : groups ) + { + params.setFilter( group.getGroupSet().getUid(), DimensionType.ORGANISATIONUNIT_GROUPSET, group ); + } + } + Map map = analyticsService.getAggregatedDataValueMap( params ); Map dataMap = new HashMap(); @@ -99,7 +110,7 @@ } @Override - public Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { Map dataMap = new HashMap(); @@ -124,6 +135,14 @@ params.setOrganisationUnits( getList( unit ) ); params.setCategory( category ); + if ( groups != null && !groups.isEmpty() ) + { + for ( OrganisationUnitGroup group : groups ) + { + params.setFilter( group.getGroupSet().getUid(), DimensionType.ORGANISATIONUNIT_GROUPSET, group ); + } + } + Map map = analyticsService.getAggregatedDataValueMap( params ); for ( Entry entry : map.entrySet() ) @@ -138,7 +157,7 @@ } @Override - public Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { List dataElements = new ArrayList( dataSet.getDataElements() ); @@ -154,6 +173,14 @@ params.setDataElements( dataElements ); params.setPeriods( getList( period ) ); params.setOrganisationUnits( getList( unit ) ); + + if ( groups != null && !groups.isEmpty() ) + { + for ( OrganisationUnitGroup group : groups ) + { + params.setFilter( group.getGroupSet().getUid(), DimensionType.ORGANISATIONUNIT_GROUPSET, group ); + } + } Map map = analyticsService.getAggregatedDataValueMap( params ); @@ -169,7 +196,7 @@ } @Override - public Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { List indicators = new ArrayList( dataSet.getIndicators() ); @@ -183,6 +210,14 @@ params.setIndicators( indicators ); params.setPeriods( getList( period ) ); params.setOrganisationUnits( getList( unit ) ); + + if ( groups != null && !groups.isEmpty() ) + { + for ( OrganisationUnitGroup group : groups ) + { + params.setFilter( group.getGroupSet().getUid(), DimensionType.ORGANISATIONUNIT_GROUPSET, group ); + } + } Map map = analyticsService.getAggregatedDataValueMap( params ); === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/JdbcDataSetReportStore.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/JdbcDataSetReportStore.java 2013-05-02 13:32:45 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/datasetreport/jdbc/JdbcDataSetReportStore.java 2013-05-03 15:06:31 +0000 @@ -44,6 +44,7 @@ import org.hisp.dhis.datasetreport.DataSetReportStore; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.period.Period; import org.hisp.dhis.system.filter.AggregatableDataElementFilter; import org.hisp.dhis.system.util.FilterUtils; @@ -67,7 +68,8 @@ // DataSetReportStore implementation // ------------------------------------------------------------------------- - public Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, boolean rawData ) + public Map getAggregatedValues( DataSet dataSet, Period period, OrganisationUnit unit, + Set groups, boolean rawData ) { Map map = new HashMap(); @@ -109,7 +111,7 @@ return map; } - public Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedSubTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { Map map = new HashMap(); @@ -148,7 +150,7 @@ return map; } - public Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedTotals( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { Map map = new HashMap(); @@ -181,7 +183,7 @@ return map; } - public Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit ) + public Map getAggregatedIndicatorValues( DataSet dataSet, Period period, OrganisationUnit unit, Set groups ) { Map map = new HashMap(); === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml 2013-05-02 20:55:43 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml 2013-05-03 15:06:31 +0000 @@ -126,7 +126,7 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css 2013-05-03 13:06:49 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css 2013-05-03 15:06:31 +0000 @@ -441,7 +441,7 @@ border: 1px solid #a4d2a3; background-color: #d5efd5; padding-top: 10px; - padding-bottom: 5px; + padding-bottom: 10px; padding-left: 20px; margin-bottom: 15px; border-radius: 3px; === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/completeness/action/GetDataCompletenessOptionsAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/completeness/action/GetDataCompletenessOptionsAction.java 2013-04-30 11:25:21 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/completeness/action/GetDataCompletenessOptionsAction.java 2013-05-03 15:06:31 +0000 @@ -96,7 +96,7 @@ public String execute() { dataSets = new ArrayList( dataSetService.getAllDataSets() ); - groupSets = new ArrayList( organisationUnitGroupService.getCompulsoryOrganisationUnitGroupSets() ); + groupSets = new ArrayList( organisationUnitGroupService.getAllOrganisationUnitGroupSets() ); Collections.sort( dataSets, IdentifiableObjectNameComparator.INSTANCE ); Collections.sort( groupSets, IdentifiableObjectNameComparator.INSTANCE ); === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GenerateDataSetReportAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GenerateDataSetReportAction.java 2013-03-19 17:09:10 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GenerateDataSetReportAction.java 2013-05-03 15:06:31 +0000 @@ -31,7 +31,9 @@ import static org.hisp.dhis.dataset.DataSet.TYPE_SECTION; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.servlet.http.HttpServletResponse; @@ -47,6 +49,8 @@ import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitGroup; +import org.hisp.dhis.organisationunit.OrganisationUnitGroupService; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodService; @@ -62,6 +66,8 @@ public class GenerateDataSetReportAction implements Action { + private static final String SEP = ";"; + // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- @@ -93,6 +99,13 @@ { this.organisationUnitService = organisationUnitService; } + + private OrganisationUnitGroupService organisationUnitGroupService; + + public void setOrganisationUnitGroupService( OrganisationUnitGroupService organisationUnitGroupService ) + { + this.organisationUnitGroupService = organisationUnitGroupService; + } private PeriodService periodService; @@ -142,6 +155,13 @@ { this.ou = ou; } + + private String groups; + + public void setGroups( String groups ) + { + this.groups = groups; + } private boolean selectedUnitOnly; @@ -186,7 +206,7 @@ { return selectedPeriod; } - + private CompleteDataSetRegistration registration; public CompleteDataSetRegistration getRegistration() @@ -244,6 +264,23 @@ } selectedOrgunit = organisationUnitService.getOrganisationUnit( ou ); + + Set ouGroups = new HashSet(); + + if ( groups != null && groups.split( SEP ).length > 0 ) + { + String[] groupIds = groups.split( SEP ); + + for ( String groupId : groupIds ) + { + OrganisationUnitGroup group = organisationUnitGroupService.getOrganisationUnitGroup( groupId ); + + if ( group != null ) + { + ouGroups.add( group ); + } + } + } String dataSetType = selectedDataSet.getDataSetType(); @@ -253,20 +290,20 @@ { if ( type != null ) { - grids = dataSetReportService.getCustomDataSetReportAsGrid( selectedDataSet, selectedOrgunit, selectedPeriod, selectedUnitOnly, format ); + grids = dataSetReportService.getCustomDataSetReportAsGrid( selectedDataSet, selectedPeriod, selectedOrgunit, ouGroups, selectedUnitOnly, format ); } else { - customDataEntryFormCode = dataSetReportService.getCustomDataSetReport( selectedDataSet, selectedOrgunit, selectedPeriod, selectedUnitOnly, format ); + customDataEntryFormCode = dataSetReportService.getCustomDataSetReport( selectedDataSet, selectedPeriod, selectedOrgunit, ouGroups, selectedUnitOnly, format ); } } else if ( TYPE_SECTION.equals( dataSetType ) ) { - grids = dataSetReportService.getSectionDataSetReport( selectedDataSet, selectedPeriod, selectedOrgunit, selectedUnitOnly, format, i18n ); + grids = dataSetReportService.getSectionDataSetReport( selectedDataSet, selectedPeriod, selectedOrgunit, ouGroups, selectedUnitOnly, format, i18n ); } else { - grid = dataSetReportService.getDefaultDataSetReport( selectedDataSet, selectedPeriod, selectedOrgunit, selectedUnitOnly, format, i18n ); + grid = dataSetReportService.getDefaultDataSetReport( selectedDataSet, selectedPeriod, selectedOrgunit, ouGroups, selectedUnitOnly, format, i18n ); } return type != null ? type : dataSetType; === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GetDataSetReportOptionsAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GetDataSetReportOptionsAction.java 2012-09-03 19:48:33 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/dataset/action/GetDataSetReportOptionsAction.java 2013-05-03 15:06:31 +0000 @@ -37,6 +37,8 @@ import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; +import org.hisp.dhis.organisationunit.OrganisationUnitGroupService; +import org.hisp.dhis.organisationunit.OrganisationUnitGroupSet; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.oust.manager.SelectionTreeManager; import org.hisp.dhis.period.Cal; @@ -68,7 +70,14 @@ { this.organisationUnitService = organisationUnitService; } - + + private OrganisationUnitGroupService organisationUnitGroupService; + + public void setOrganisationUnitGroupService( OrganisationUnitGroupService organisationUnitGroupService ) + { + this.organisationUnitGroupService = organisationUnitGroupService; + } + private SelectionTreeManager selectionTreeManager; public void setSelectionTreeManager( SelectionTreeManager selectionTreeManager ) @@ -150,6 +159,13 @@ return periodType; } + private List groupSets = new ArrayList(); + + public List getGroupSets() + { + return groupSets; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -174,6 +190,8 @@ selectionTreeManager.setSelectedOrganisationUnit( organisationUnitService.getOrganisationUnit( ou ) ); //TODO set unit state in client instead } + + groupSets = new ArrayList( organisationUnitGroupService.getAllOrganisationUnitGroupSets() ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2013-04-30 11:20:20 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2013-05-03 15:06:31 +0000 @@ -177,6 +177,7 @@ scope="prototype"> + @@ -186,6 +187,7 @@ + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/dataSetReportForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/dataSetReportForm.vm 2013-04-29 13:14:35 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/dataSetReportForm.vm 2013-05-03 15:06:31 +0000 @@ -66,7 +66,9 @@ -
+ + +

+ +

+ +
@@ -99,9 +105,23 @@

-
+
+ + + + + +
=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js 2012-12-04 13:16:24 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/dataSetReport.js 2013-05-03 15:06:31 +0000 @@ -9,14 +9,29 @@ function getDataSetReport() { var dataSetReport = { - dataSet: $( "#dataSetId" ).val(), + ds: $( "#dataSetId" ).val(), periodType: $( "#periodType" ).val(), - period: $( "#periodId" ).val(), - orgUnit: selectionTreeSelection.getSelectedUid()[0], + pe: $( "#periodId" ).val(), + ou: selectionTreeSelection.getSelectedUid()[0], selectedUnitOnly: $( "#selectedUnitOnly" ).is( ":checked" ), offset: currentPeriodOffset }; + var groups = ""; + + $( "[name='groupSet']" ).each( function( index, value ) { + var item = $( this ).val(); + if ( item ) + { + groups += item + ";"; + } + } ); + + if ( groups ) + { + dataSetReport["groups"] = groups; + } + return dataSetReport; } @@ -33,7 +48,8 @@ selectionTreeSelection.setMultipleSelectionAllowed( false ); selectionTree.buildSelectionTree(); - $( "body" ).on( "oust.selected", function() { + $( "body" ).on( "oust.selected", function() + { $( "body" ).off( "oust.selected" ); validateDataSetReport(); } ); @@ -82,12 +98,12 @@ { var dataSetReport = getDataSetReport(); - if ( !dataSetReport.dataSet ) + if ( !dataSetReport.ds ) { setHeaderMessage( i18n_select_data_set ); return false; } - if ( !dataSetReport.period ) + if ( !dataSetReport.pe ) { setHeaderMessage( i18n_select_period ); return false; @@ -103,9 +119,10 @@ hideContent(); showLoader(); - var currentParams = { ds: dataSetReport.dataSet, pe: dataSetReport.period, selectedUnitOnly: dataSetReport.selectedUnitOnly, ou: dataSetReport.orgUnit }; + delete dataSetReport.periodType; + delete dataSetReport.offset; - $.get( 'generateDataSetReport.action', currentParams, function( data ) { + $.get( 'generateDataSetReport.action', dataSetReport, function( data ) { $( '#content' ).html( data ); hideLoader(); showContent(); @@ -118,10 +135,10 @@ var dataSetReport = getDataSetReport(); var url = "generateDataSetReport.action" + - "?ds=" + dataSetReport.dataSet + - "&pe=" + dataSetReport.period + + "?ds=" + dataSetReport.ds + + "&pe=" + dataSetReport.pe + "&selectedUnitOnly=" + dataSetReport.selectedUnitOnly + - "&ou=" + dataSetReport.orgUnit + + "&ou=" + dataSetReport.ou + "&type=" + type; window.location.href = url; @@ -162,6 +179,12 @@ $( ".downloadButton" ).hide(); } +function showAdvancedOptions() +{ + $( "#advancedOptionsLink" ).hide(); + $( "#advancedOptions" ).show(); +} + //------------------------------------------------------------------------------ // Share //------------------------------------------------------------------------------ @@ -186,8 +209,8 @@ text = $.trim( text ); var url = "../api/interpretations/dataSetReport/" + $( "#currentDataSetId" ).val() + - "?pe=" + dataSetReport.period + - "&ou=" + dataSetReport.orgUnit; + "?pe=" + dataSetReport.pe + + "&ou=" + dataSetReport.ou; $.ajax( url, { type: "POST",