=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitLevelStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitLevelStore.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitLevelStore.java 2015-11-12 18:37:11 +0000 @@ -52,11 +52,4 @@ * @return the OrganisationUnitLevel at the given level. */ OrganisationUnitLevel getByLevel( int level ); - - /** - * Gets the maximum level from the hierarchy. - * - * @return the maximum number of level. - */ - int getMaxLevels(); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2015-10-12 10:12:49 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2015-11-12 18:37:11 +0000 @@ -431,8 +431,6 @@ int getNumberOfOrganisationUnits(); - int getMaxOfOrganisationUnitLevels(); - /** * Return the number of organisation unit levels to cache offline, e.g. for * organisation unit tree. Looks for level to return in the following order: === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/JDBCDataBrowserStore.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/JDBCDataBrowserStore.java 2015-09-16 18:31:45 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/JDBCDataBrowserStore.java 2015-11-12 18:37:11 +0000 @@ -480,7 +480,7 @@ { if ( maxLevel == null ) { - maxLevel = organisationUnitService.getMaxOfOrganisationUnitLevels(); + maxLevel = organisationUnitService.getNumberOfOrganisationalLevels(); } int curLevel = organisationUnitService.getOrganisationUnit( orgUnitSelected ).getLevel(); === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2015-11-02 03:45:34 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2015-11-12 18:37:11 +0000 @@ -134,7 +134,7 @@ { resourceTableStore.generateResourceTable( new OrganisationUnitStructureResourceTable( null, statementBuilder.getColumnQuote(), - organisationUnitService, organisationUnitService.getMaxOfOrganisationUnitLevels() ) ); + organisationUnitService, organisationUnitService.getNumberOfOrganisationalLevels() ) ); } @Override === modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java 2015-10-02 17:20:28 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/jdbc/JdbcResourceTableStore.java 2015-11-12 18:37:11 +0000 @@ -84,7 +84,7 @@ jdbcTemplate.execute( createTableSql ); // --------------------------------------------------------------------- - // Populate table + // Populate table through SQL or object batch update // --------------------------------------------------------------------- if ( populateTableSql.isPresent() ) === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java 2015-10-06 17:53:30 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/DefaultAnalyticsTableService.java 2015-11-12 18:37:11 +0000 @@ -96,7 +96,7 @@ public void update( Integer lastYears, TaskId taskId ) { int processNo = getProcessNo(); - int orgUnitLevelNo = organisationUnitService.getMaxOfOrganisationUnitLevels(); + int orgUnitLevelNo = organisationUnitService.getNumberOfOrganisationalLevels(); Clock clock = new Clock( log ).startClock().logTime( "Starting update, processes: " + processNo + ", org unit levels: " + orgUnitLevelNo ); @@ -214,7 +214,7 @@ private void applyAggregationLevels( List tables ) { - int maxLevels = organisationUnitService.getMaxOfOrganisationUnitLevels(); + int maxLevels = organisationUnitService.getNumberOfOrganisationalLevels(); boolean hasAggLevels = false; === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java 2015-10-20 07:16:41 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java 2015-11-12 18:37:11 +0000 @@ -92,7 +92,7 @@ return "No data values exist, not updating aggregate analytics tables"; } - int orgUnitLevels = organisationUnitService.getMaxOfOrganisationUnitLevels(); + int orgUnitLevels = organisationUnitService.getNumberOfOrganisationalLevels(); if ( orgUnitLevels == 0 ) { === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2015-10-15 21:33:41 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2015-11-12 18:37:11 +0000 @@ -685,12 +685,6 @@ } @Override - public int getMaxOfOrganisationUnitLevels() - { - return organisationUnitLevelStore.getMaxLevels(); - } - - @Override public int getOfflineOrganisationUnitLevels() { // --------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitLevelStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitLevelStore.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitLevelStore.java 2015-11-12 18:37:11 +0000 @@ -53,14 +53,4 @@ { return (OrganisationUnitLevel) getCriteria( Restrictions.eq( "level", level ) ).uniqueResult(); } - - @Override - public int getMaxLevels() - { - final String sql = "SELECT MAX(level) FROM orgunitlevel"; - - Integer level = jdbcTemplate.queryForObject( sql, Integer.class ); - - return level != null ? level : 0; - } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/organisationunit/OrganisationUnitServiceTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/organisationunit/OrganisationUnitServiceTest.java 2015-10-08 14:29:41 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/organisationunit/OrganisationUnitServiceTest.java 2015-11-12 18:37:11 +0000 @@ -339,12 +339,37 @@ OrganisationUnit unit7 = createOrganisationUnit( '7' ); organisationUnitService.addOrganisationUnit( unit7 ); - assertTrue( organisationUnitService.getOrganisationUnitsAtLevel( 1 ).size() == 2 ); - assertTrue( organisationUnitService.getOrganisationUnitsAtLevel( 3 ).size() == 3 ); - assertTrue( organisationUnitService.getNumberOfOrganisationalLevels() == 4 ); + assertEquals( 2, organisationUnitService.getOrganisationUnitsAtLevel( 1 ).size() ); + assertEquals( 3, organisationUnitService.getOrganisationUnitsAtLevel( 3 ).size() ); + assertEquals( 4, organisationUnitService.getNumberOfOrganisationalLevels() ); assertTrue( unit4.getLevel() == 3 ); assertTrue( unit1.getLevel() == 1 ); assertTrue( unit6.getLevel() == 4 ); + } + + @Test + public void testGetNumberOfOrganisationalLevels() + { + assertEquals( 0, organisationUnitService.getNumberOfOrganisationalLevels() ); + + OrganisationUnit unit1 = createOrganisationUnit( '1' ); + organisationUnitService.addOrganisationUnit( unit1 ); + + OrganisationUnit unit2 = createOrganisationUnit( '2', unit1 ); + unit1.getChildren().add( unit2 ); + organisationUnitService.addOrganisationUnit( unit2 ); + + assertEquals( 2, organisationUnitService.getNumberOfOrganisationalLevels() ); + + OrganisationUnit unit3 = createOrganisationUnit( '3', unit2 ); + unit2.getChildren().add( unit3 ); + organisationUnitService.addOrganisationUnit( unit3 ); + + OrganisationUnit unit4 = createOrganisationUnit( '4', unit2 ); + unit2.getChildren().add( unit4 ); + organisationUnitService.addOrganisationUnit( unit4 ); + + assertEquals( 3, organisationUnitService.getNumberOfOrganisationalLevels() ); } @Test @@ -858,20 +883,6 @@ } @Test - public void testGetMaxLevels() - { - assertEquals( 0, organisationUnitService.getMaxOfOrganisationUnitLevels() ); - - OrganisationUnitLevel levelA = new OrganisationUnitLevel( 1, "National" ); - OrganisationUnitLevel levelB = new OrganisationUnitLevel( 2, "District" ); - - organisationUnitService.addOrganisationUnitLevel( levelA ); - organisationUnitService.addOrganisationUnitLevel( levelB ); - - assertEquals( 2, organisationUnitService.getMaxOfOrganisationUnitLevels() ); - } - - @Test public void testIsInUserHierarchy() { OrganisationUnit ouA = createOrganisationUnit( 'A' );