=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2015-07-07 06:11:54 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/DefaultProgramInstanceService.java 2015-07-07 08:50:28 +0000 @@ -73,6 +73,8 @@ import java.util.List; import java.util.Set; +import static org.hisp.dhis.common.OrganisationUnitSelectionMode.CHILDREN; + /** * @author Abyot Asalefew */ @@ -271,6 +273,18 @@ params.setOrganisationUnits( user.getDataViewOrganisationUnitsWithFallback() ); params.setOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ); } + else if ( params.isOrganisationUnitMode( CHILDREN ) ) + { + Set organisationUnits = new HashSet<>(); + organisationUnits.addAll( params.getOrganisationUnits() ); + + for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) + { + organisationUnits.addAll( organisationUnit.getChildren() ); + } + + params.setOrganisationUnits( organisationUnits ); + } for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) { === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-07-03 08:41:47 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-07-07 08:50:28 +0000 @@ -66,8 +66,7 @@ import java.util.Map; import java.util.Set; -import static org.hisp.dhis.common.OrganisationUnitSelectionMode.ACCESSIBLE; -import static org.hisp.dhis.common.OrganisationUnitSelectionMode.ALL; +import static org.hisp.dhis.common.OrganisationUnitSelectionMode.*; import static org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams.*; /** @@ -163,11 +162,23 @@ User user = currentUserService.getCurrentUser(); - if ( user != null && params.isOrganisationUnitMode( OrganisationUnitSelectionMode.ACCESSIBLE ) ) + if ( user != null && params.isOrganisationUnitMode( ACCESSIBLE ) ) { params.setOrganisationUnits( user.getDataViewOrganisationUnitsWithFallback() ); params.setOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ); } + else if ( params.isOrganisationUnitMode( CHILDREN ) ) + { + Set organisationUnits = new HashSet<>(); + organisationUnits.addAll( params.getOrganisationUnits() ); + + for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) + { + organisationUnits.addAll( organisationUnit.getChildren() ); + } + + params.setOrganisationUnits( organisationUnits ); + } for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) { @@ -197,6 +208,18 @@ params.setOrganisationUnits( user.getDataViewOrganisationUnitsWithFallback() ); params.setOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS ); } + else if ( params.isOrganisationUnitMode( CHILDREN ) ) + { + Set organisationUnits = new HashSet<>(); + organisationUnits.addAll( params.getOrganisationUnits() ); + + for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) + { + organisationUnits.addAll( organisationUnit.getChildren() ); + } + + params.setOrganisationUnits( organisationUnits ); + } for ( OrganisationUnit organisationUnit : params.getOrganisationUnits() ) {