=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java 2013-09-26 07:38:27 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/AbstractCrudController.java 2013-09-27 15:16:29 +0000 @@ -90,7 +90,14 @@ ReflectionUtils.invokeSetterMethod( ExchangeClasses.getAllExportMap().get( getEntityClass() ), metaData, entityList ); - handleLinksAndAccess( options, metaData, entityList ); + if ( options.getViewClass( "basic" ).equals( "basic" ) ) + { + handleLinksAndAccess( options, metaData, entityList, false ); + } + else + { + handleLinksAndAccess( options, metaData, entityList, true ); + } postProcessEntities( entityList ); postProcessEntities( entityList, options, parameters ); @@ -110,13 +117,22 @@ ReflectionUtils.invokeSetterMethod( ExchangeClasses.getAllExportMap().get( getEntityClass() ), metaData, entityList ); - handleLinksAndAccess( options, metaData, entityList ); + String viewClass = options.getViewClass( "basic" ); + + if ( viewClass.equals( "basic" ) || viewClass.equals( "sharingBasic" ) ) + { + handleLinksAndAccess( options, metaData, entityList, false ); + } + else + { + handleLinksAndAccess( options, metaData, entityList, true ); + } postProcessEntities( entityList ); postProcessEntities( entityList, options, parameters ); model.addAttribute( "model", metaData ); - model.addAttribute( "viewClass", options.getViewClass( "basic" ) ); + model.addAttribute( "viewClass", viewClass ); return StringUtils.uncapitalize( getEntitySimpleName() ) + "List"; } @@ -177,7 +193,7 @@ return StringUtils.uncapitalize( getEntitySimpleName() ); } - + //-------------------------------------------------------------------------- // POST //-------------------------------------------------------------------------- @@ -312,7 +328,7 @@ return entityList; } - + protected List queryForList( Class clazz, String query ) { return new ArrayList( manager.filter( getEntityClass(), query ) ); @@ -336,11 +352,11 @@ ((BaseIdentifiableObject) object).setAccess( access ); } - protected void handleLinksAndAccess( WebOptions options, WebMetaData metaData, List entityList ) + protected void handleLinksAndAccess( WebOptions options, WebMetaData metaData, List entityList, boolean deep ) { if ( options != null && options.hasLinks() ) { - WebUtils.generateLinks( metaData ); + WebUtils.generateLinks( metaData, deep ); } if ( entityList != null && SharingUtils.isSupported( getEntityClass() ) ) === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java 2013-09-27 13:56:18 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/event/PersonController.java 2013-09-27 15:16:29 +0000 @@ -59,6 +59,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Date; import java.util.Map; /** === 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-26 08:03:57 +0000 +++ 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 @@ -45,7 +45,7 @@ * @author Morten Olav Hansen */ @Controller -@RequestMapping(value = ProgramController.RESOURCE_PATH) +@RequestMapping( value = ProgramController.RESOURCE_PATH ) public class ProgramController extends AbstractCrudController { === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java 2013-08-23 16:00:30 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java 2013-09-27 15:16:29 +0000 @@ -52,6 +52,11 @@ public static void generateLinks( WebMetaData metaData ) { + generateLinks( metaData, true ); + } + + public static void generateLinks( WebMetaData metaData, boolean deep ) + { Class baseType = null; Collection fields = ReflectionUtils.collectFields( metaData.getClass(), alwaysTrue ); @@ -73,7 +78,7 @@ for ( Object object : objects ) { - generateLinks( object ); + generateLinks( object, deep ); } } } @@ -116,8 +121,13 @@ } } + public static void generateLinks( Object object ) + { + generateLinks( object, true ); + } + @SuppressWarnings( "unchecked" ) - public static void generateLinks( Object object ) + public static void generateLinks( Object object, boolean deep ) { if ( IdentifiableObject.class.isAssignableFrom( object.getClass() ) ) { @@ -127,6 +137,11 @@ Collection fields = ReflectionUtils.collectFields( object.getClass(), alwaysTrue ); + if ( !deep ) + { + return; + } + for ( Field field : fields ) { if ( IdentifiableObject.class.isAssignableFrom( field.getType() ) )