=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java 2013-09-27 15:16:29 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/ProgramController.java 2014-01-16 07:48:44 +0000 @@ -32,6 +32,7 @@ import org.hisp.dhis.api.controller.WebMetaData; import org.hisp.dhis.api.controller.WebOptions; import org.hisp.dhis.common.Pager; +import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.program.Program; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -75,11 +76,14 @@ entityList = new ArrayList( manager.getAllSorted( getEntityClass() ) ); } - if ( options.getOptions().get( "type" ) != null ) + String type = options.getOptions().get( "type" ); + String orgUnit = options.getOptions().get( "orgUnit" ); + + if ( type != null ) { try { - int type = Integer.parseInt( options.getOptions().get( "type" ) ); + int programType = Integer.parseInt( type ); Iterator iterator = entityList.iterator(); @@ -87,7 +91,7 @@ { Program program = iterator.next(); - if ( program.getType() != type ) + if ( program.getType() != programType ) { iterator.remove(); } @@ -98,6 +102,26 @@ } } + if ( orgUnit != null ) + { + OrganisationUnit organisationUnit = manager.get( OrganisationUnit.class, orgUnit ); + + if ( organisationUnit != null ) + { + Iterator iterator = entityList.iterator(); + + while ( iterator.hasNext() ) + { + Program program = iterator.next(); + + if ( !program.getOrganisationUnits().contains( organisationUnit ) ) + { + iterator.remove(); + } + } + } + } + return entityList; } }