=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2013-11-01 08:11:31 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2013-11-26 10:48:36 +0000 @@ -123,6 +123,8 @@ Map> getOrganisationUnitDataSetAssocationMap(); + Map> getOrganisationUnitGroupDataSetAssocationMap(); + Set getOrganisationUnitIdsWithoutData(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2013-11-06 12:24:02 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2013-11-26 10:48:36 +0000 @@ -554,6 +554,7 @@ public OrganisationUnitDataSetAssociationSet getOrganisationUnitDataSetAssociationSet() { Map> associationSet = organisationUnitStore.getOrganisationUnitDataSetAssocationMap(); + associationSet.putAll( organisationUnitStore.getOrganisationUnitGroupDataSetAssocationMap() ); filterUserDataSets( associationSet ); filterChildOrganisationUnits( associationSet ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2013-11-01 08:11:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2013-11-26 10:48:36 +0000 @@ -216,6 +216,37 @@ return map; } + @Override + public Map> getOrganisationUnitGroupDataSetAssocationMap() + { + final String sql = "select ougds.datasetid, ou.organisationunitid from orgunitgroupdatasets ougds " + + "left join orgunitgroupmembers ougm on ougds.orgunitgroupid=ougm.orgunitgroupid " + + "left join organisationunit ou on ou.organisationunitid=ougm.organisationunitid"; + + final Map> map = new HashMap>(); + + jdbcTemplate.query( sql, new RowCallbackHandler() + { + public void processRow( ResultSet rs ) throws SQLException + { + int dataSetId = rs.getInt( 1 ); + int organisationUnitId = rs.getInt( 2 ); + + Set dataSets = map.get( organisationUnitId ); + + if ( dataSets == null ) + { + dataSets = new HashSet(); + map.put( organisationUnitId, dataSets ); + } + + dataSets.add( dataSetId ); + } + } ); + + return map; + } + public Set getOrganisationUnitIdsWithoutData() { final String sql = "select organisationunitid from organisationunit ou where not exists (" +