=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/dataelement/DataElementGroupController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/dataelement/DataElementGroupController.java 2014-01-09 10:09:43 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/dataelement/DataElementGroupController.java 2014-01-09 10:28:10 +0000 @@ -43,6 +43,9 @@ import org.hisp.dhis.common.PagerUtils; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementGroup; +import org.hisp.dhis.dataelement.DataElementOperand; +import org.hisp.dhis.dataelement.DataElementOperandService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.StringUtils; @@ -63,6 +66,9 @@ { public static final String RESOURCE_PATH = "/dataElementGroups"; + @Autowired + private DataElementOperandService dataElementOperandService; + @RequestMapping(value = "/{uid}/members", method = RequestMethod.GET) public String getMembers( @PathVariable("uid") String uid, @RequestParam Map parameters, Model model, HttpServletRequest request, HttpServletResponse response ) throws Exception @@ -98,4 +104,43 @@ return StringUtils.uncapitalize( getEntitySimpleName() ); } + + @RequestMapping(value = "/{uid}/operands", method = RequestMethod.GET) + public String getOperands( @PathVariable("uid") String uid, @RequestParam Map parameters, + Model model, HttpServletRequest request, HttpServletResponse response ) throws Exception + { + WebOptions options = new WebOptions( parameters ); + DataElementGroup dataElementGroup = getEntity( uid ); + + if ( dataElementGroup == null ) + { + ContextUtils.notFoundResponse( response, "DataElementGroup not found for uid: " + uid ); + return null; + } + + WebMetaData metaData = new WebMetaData(); + List dataElementOperands = Lists.newArrayList( + dataElementOperandService.getDataElementOperandByDataElementGroup( dataElementGroup ) ); + + metaData.setDataElementOperands( dataElementOperands ); + + if ( options.hasPaging() ) + { + Pager pager = new Pager( options.getPage(), dataElementOperands.size(), options.getPageSize() ); + metaData.setPager( pager ); + dataElementOperands = PagerUtils.pageCollection( dataElementOperands, pager ); + } + + metaData.setDataElementOperands( dataElementOperands ); + + if ( options.hasLinks() ) + { + WebUtils.generateLinks( metaData ); + } + + model.addAttribute( "model", metaData ); + model.addAttribute( "viewClass", options.getViewClass( "detailed" ) ); + + return StringUtils.uncapitalize( getEntitySimpleName() ); + } }