=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/scheduling/AnalyticsTableTask.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/scheduling/AnalyticsTableTask.java 2013-09-24 08:11:36 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/scheduling/AnalyticsTableTask.java 2013-12-25 21:54:14 +0000 @@ -63,12 +63,33 @@ @Autowired private MessageService messageService; - private boolean last3Years; + private boolean last3Years = false; public void setLast3Years( boolean last3Years ) { this.last3Years = last3Years; } + + private boolean skipResourceTables = false; + + public void setSkipResourceTables( boolean skipResourceTables ) + { + this.skipResourceTables = skipResourceTables; + } + + private boolean skipAggregate = false; + + public void setSkipAggregate( boolean skipAggregate ) + { + this.skipAggregate = skipAggregate; + } + + private boolean skipEvents = false; + + public void setSkipEvents( boolean skipEvents ) + { + this.skipEvents = skipEvents; + } private TaskId taskId; @@ -88,25 +109,29 @@ try { - analyticsTableService.generateResourceTables(); - - notifier.notify( taskId, "Updating analytics tables" ); - - analyticsTableService.update( last3Years, taskId ); - - notifier.notify( taskId, "Updating completeness tables" ); - - completenessTableService.update( last3Years, taskId ); - - notifier.notify( taskId, "Updating compeleteness target table" ); - - completenessTargetTableService.update( last3Years, taskId ); - - notifier.notify( taskId, "Updating event analytics tables" ); - - eventAnalyticsTableService.update( last3Years, taskId ); - - notifier.notify( taskId, INFO, "Analytics tables updated", true ); + if ( !skipResourceTables ) + { + analyticsTableService.generateResourceTables(); + notifier.notify( taskId, "Updating analytics tables" ); + } + + if ( !skipAggregate ) + { + analyticsTableService.update( last3Years, taskId ); + notifier.notify( taskId, "Updating completeness tables" ); + + completenessTableService.update( last3Years, taskId ); + notifier.notify( taskId, "Updating compeleteness target table" ); + + completenessTargetTableService.update( last3Years, taskId ); + notifier.notify( taskId, "Updating event analytics tables" ); + } + + if ( !skipEvents ) + { + eventAnalyticsTableService.update( last3Years, taskId ); + notifier.notify( taskId, INFO, "Analytics tables updated", true ); + } } catch ( RuntimeException ex ) { === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ResourceTableController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ResourceTableController.java 2013-10-23 22:03:17 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ResourceTableController.java 2013-12-25 21:54:14 +0000 @@ -45,6 +45,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; /** * @author Lars Helge Overland @@ -77,8 +78,15 @@ @RequestMapping( value = "/analytics", method = { RequestMethod.PUT, RequestMethod.POST } ) @PreAuthorize( "hasRole('ALL') or hasRole('F_DATA_MART_ADMIN')" ) - public void analytics( HttpServletResponse response ) + public void analytics( + @RequestParam(required=false) boolean skipResourceTables, + @RequestParam(required=false) boolean skipAggregate, + @RequestParam(required=false) boolean skipEvents, + HttpServletResponse response ) { + analyticsTableTask.setSkipResourceTables( skipResourceTables ); + analyticsTableTask.setSkipAggregate( skipAggregate ); + analyticsTableTask.setSkipEvents( skipEvents ); analyticsTableTask.setTaskId( new TaskId( TaskCategory.DATAMART, currentUserService.getCurrentUser() ) ); scheduler.executeTask( analyticsTableTask );