=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2011-02-17 02:14:36 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2011-03-29 20:06:47 +0000 @@ -154,6 +154,18 @@ // Logic // ------------------------------------------------------------------------- + public Set getGrandChildren() + { + Set grandChildren = new HashSet(); + + for ( OrganisationUnit child : children ) + { + grandChildren.addAll( child.getChildren() ); + } + + return grandChildren; + } + public boolean hasChild() { return !this.children.isEmpty(); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportParams.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportParams.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportParams.java 2011-03-29 20:06:47 +0000 @@ -41,6 +41,8 @@ implements Serializable { private Boolean paramReportingMonth; + + private Boolean paramGrandParentOrganisationUnit; private Boolean paramParentOrganisationUnit; @@ -54,9 +56,10 @@ { } - public ReportParams( boolean paramReportingMonth, boolean paramParentOrganisationUnit, boolean paramOrganisationUnit ) + public ReportParams( boolean paramReportingMonth, boolean paramGrandParentOrganisationUnit, boolean paramParentOrganisationUnit, boolean paramOrganisationUnit ) { this.paramReportingMonth = paramReportingMonth; + this.paramGrandParentOrganisationUnit = paramGrandParentOrganisationUnit; this.paramParentOrganisationUnit = paramParentOrganisationUnit; this.paramOrganisationUnit = paramOrganisationUnit; } @@ -70,6 +73,11 @@ return paramReportingMonth != null && paramReportingMonth; } + public boolean isParamGrandParentOrganisationUnit() + { + return paramGrandParentOrganisationUnit != null && paramGrandParentOrganisationUnit; + } + public boolean isParamParentOrganisationUnit() { return paramParentOrganisationUnit != null && paramParentOrganisationUnit; @@ -82,7 +90,7 @@ public boolean isSet() { - return isParamReportingMonth() || isParamParentOrganisationUnit() || isParamOrganisationUnit(); + return isParamReportingMonth() || isParamGrandParentOrganisationUnit() || isParamParentOrganisationUnit() || isParamOrganisationUnit(); } // ------------------------------------------------------------------------- @@ -99,6 +107,16 @@ this.paramReportingMonth = paramReportingMonth; } + public Boolean getParamGrandParentOrganisationUnit() + { + return paramGrandParentOrganisationUnit; + } + + public void setParamGrandParentOrganisationUnit( Boolean paramGrandParentOrganisationUnit ) + { + this.paramGrandParentOrganisationUnit = paramGrandParentOrganisationUnit; + } + public Boolean getParamParentOrganisationUnit() { return paramParentOrganisationUnit; === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java 2011-02-28 20:10:12 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java 2011-03-29 20:06:47 +0000 @@ -305,6 +305,21 @@ } // --------------------------------------------------------------------- + // Grand parent organisation unit report parameter + // --------------------------------------------------------------------- + + if ( reportTable.getReportParams() != null && reportTable.getReportParams().isParamGrandParentOrganisationUnit() ) + { + OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit( organisationUnitId ); + organisationUnit.setCurrentParent( true ); + reportTable.getRelativeUnits().addAll( new ArrayList( organisationUnit.getGrandChildren() ) ); + reportTable.getRelativeUnits().add( organisationUnit ); + reportTable.setOrganisationUnitName( organisationUnit.getName() ); + + log.info( "Grand parent organisation unit: " + organisationUnit.getName() ); + } + + // --------------------------------------------------------------------- // Parent organisation unit report parameter // --------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml' --- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml 2011-02-23 23:39:31 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml 2011-03-29 20:06:47 +0000 @@ -72,6 +72,7 @@ + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java 2011-02-22 23:17:50 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java 2011-03-29 20:06:47 +0000 @@ -28,15 +28,10 @@ */ import java.util.Calendar; -import java.util.Collection; -import java.util.List; import java.util.SortedMap; import java.util.TreeMap; import org.hisp.dhis.i18n.I18nFormat; -import org.hisp.dhis.organisationunit.OrganisationUnit; -import org.hisp.dhis.organisationunit.OrganisationUnitLevel; -import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.MonthlyPeriodType; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodType; @@ -67,13 +62,6 @@ this.reportTableService = reportTableService; } - private OrganisationUnitService organisationUnitService; - - public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) - { - this.organisationUnitService = organisationUnitService; - } - private I18nFormat format; public void setFormat( I18nFormat format ) @@ -119,21 +107,7 @@ { return reportParams; } - - private List levels; - - public List getLevels() - { - return levels; - } - - private Collection organisationUnits; - - public Collection getOrganisationUnits() - { - return organisationUnits; - } - + private SortedMap reportingPeriods = new TreeMap(); public SortedMap getReportingPeriods() @@ -161,14 +135,7 @@ if ( reportTable != null ) { reportParams = reportTable.getReportParams(); - - if ( reportParams.isParamParentOrganisationUnit() || reportParams.isParamOrganisationUnit() ) - { - levels = organisationUnitService.getOrganisationUnitLevels(); - - organisationUnits = organisationUnitService.getOrganisationUnitsAtLevel( 1 ); - } - + if ( reportParams.isParamReportingMonth() ) { MonthlyPeriodType periodType = new MonthlyPeriodType(); === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/SaveTableAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/SaveTableAction.java 2011-02-19 00:09:05 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/SaveTableAction.java 2011-03-29 20:06:47 +0000 @@ -270,6 +270,13 @@ this.paramReportingMonth = paramReportingMonth; } + private boolean paramGrandParentOrganisationUnit; + + public void setParamGrandParentOrganisationUnit( boolean paramGrandParentOrganisationUnit ) + { + this.paramGrandParentOrganisationUnit = paramGrandParentOrganisationUnit; + } + private boolean paramParentOrganisationUnit; public void setParamParentOrganisationUnit( boolean paramParentOrganisationUnit ) @@ -339,6 +346,7 @@ ReportParams reportParams = new ReportParams(); reportParams.setParamReportingMonth( paramReportingMonth ); + reportParams.setParamGrandParentOrganisationUnit( paramGrandParentOrganisationUnit ); reportParams.setParamParentOrganisationUnit( paramParentOrganisationUnit ); reportParams.setParamOrganisationUnit( paramOrganisationUnit ); === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2011-03-23 02:40:08 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2011-03-29 20:06:47 +0000 @@ -195,8 +195,6 @@ scope="prototype"> -   + +     === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/inputReportParamsForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/inputReportParamsForm.vm 2011-03-28 20:09:32 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/inputReportParamsForm.vm 2011-03-29 20:06:47 +0000 @@ -57,7 +57,8 @@ #end - #if ( $!reportParams.isParamParentOrganisationUnit() || $!reportParams.isParamOrganisationUnit() ) + + #if ( $!reportParams.isParamGrandParentOrganisationUnit() || $!reportParams.isParamParentOrganisationUnit() || $!reportParams.isParamOrganisationUnit() ) $i18n.getString( "organisation_unit" ) @@ -76,9 +77,11 @@ + #end - + + #if( $!reportParams.isSet() ) === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/table.js' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/table.js 2011-03-20 22:35:55 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/table.js 2011-03-29 20:06:47 +0000 @@ -115,7 +115,8 @@ function organisationUnitReportParamsChecked() { - if ( isChecked( "paramParentOrganisationUnit" ) == true || + if ( isChecked( "paramGrandParentOrganisationUnit" ) == true || + isChecked( "paramParentOrganisationUnit" ) == true || isChecked( "paramOrganisationUnit" ) == true ) { return true; @@ -126,13 +127,22 @@ function bothOrganisationUnitReportParamsChecked() { - if ( isChecked( "paramParentOrganisationUnit" ) == true && - isChecked( "paramOrganisationUnit" ) == true ) + var count = 0; + + if ( isChecked( "paramGrandParentOrganisationUnit" ) ) + { + count++; + } + if ( isChecked( "paramParentOrganisationUnit" ) ) + { + count++; + } + if( isChecked( "paramOrganisationUnit" ) ) { - return true; + count++; } - return false; + return count > 1; } // -----------------------------------------------------------------------------