=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2011-05-30 18:34:15 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/Indicator.java 2011-07-14 10:31:16 +0000 @@ -32,6 +32,7 @@ import java.util.Set; import org.hisp.dhis.common.AbstractNameableObject; +import org.hisp.dhis.dataset.DataSet; /** * @author Lars Helge Overland @@ -71,7 +72,9 @@ private Date lastUpdated; - private Set groups = new HashSet(); + private Set groups = new HashSet(); + + private Set dataSets = new HashSet(); // ------------------------------------------------------------------------- // Logic @@ -292,4 +295,14 @@ { this.groups = groups; } + + public Set getDataSets() + { + return dataSets; + } + + public void setDataSets( Set dataSets ) + { + this.dataSets = dataSets; + } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java 2011-05-20 08:01:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java 2011-07-14 10:31:16 +0000 @@ -64,6 +64,8 @@ Collection getIndicatorsWithGroupSets(); Collection getIndicatorsWithoutGroups(); + + Collection getIndicatorsWithDataSets(); int getIndicatorCountByName( String name ); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java 2011-05-20 08:01:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java 2011-07-14 10:31:16 +0000 @@ -58,6 +58,8 @@ Collection getIndicatorsWithGroupSets(); Collection getIndicatorsWithoutGroups(); + + Collection getIndicatorsWithDataSets(); int getIndicatorCountByName( String name ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java 2011-05-20 08:01:23 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java 2011-07-14 10:31:16 +0000 @@ -175,6 +175,11 @@ { return i18n( i18nService, indicatorStore.getIndicatorsWithoutGroups() ); } + + public Collection getIndicatorsWithDataSets() + { + return i18n( i18nService, indicatorStore.getIndicatorsWithDataSets() ); + } public int getIndicatorCount() { === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java 2011-07-01 05:21:03 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java 2011-07-14 10:31:16 +0000 @@ -32,6 +32,7 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryCombo; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; +import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.system.deletion.DeletionHandler; @@ -107,6 +108,18 @@ } } } + + @Override + public void deleteDataSet( DataSet dataSet ) + { + for ( Indicator indicator : indicatorService.getAllIndicators() ) + { + if ( indicator.getDataSets().remove( dataSet ) ) + { + indicatorService.updateIndicator( indicator ); + } + } + } @Override public boolean allowDeleteDataElement( DataElement dataElement ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java 2011-06-07 05:46:18 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java 2011-07-14 10:31:16 +0000 @@ -158,6 +158,14 @@ return sessionFactory.getCurrentSession().createQuery( hql ).list(); } + @SuppressWarnings( "unchecked" ) + public Collection getIndicatorsWithDataSets() + { + final String hql = "from Indicator d where d.dataSets.size > 0"; + + return sessionFactory.getCurrentSession().createQuery( hql ).list(); + } + public int getIndicatorCount() { return getCount(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml 2011-07-13 09:35:32 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml 2011-07-14 10:31:16 +0000 @@ -63,5 +63,10 @@ + + + + + === modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/ehcache.xml' --- dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/ehcache.xml 2011-06-29 15:25:19 +0000 +++ dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/ehcache.xml 2011-07-14 10:31:16 +0000 @@ -149,12 +149,12 @@ + + - - @@ -164,6 +164,9 @@ + + === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java 2011-07-14 08:39:01 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java 2011-07-14 10:34:09 +0000 @@ -29,15 +29,12 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; import java.util.List; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.de.state.SelectedStateManager; -import org.hisp.dhis.expression.ExpressionService; import org.hisp.dhis.i18n.I18nFormat; -import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.period.Period; import com.opensymphony.xwork2.Action; @@ -73,13 +70,6 @@ this.format = format; } - private ExpressionService expressionService; - - public void setExpressionService( ExpressionService expressionService ) - { - this.expressionService = expressionService; - } - // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- @@ -108,14 +98,7 @@ { return periodValid; } - - private Collection indicators = new HashSet(); - - public Collection getIndicators() - { - return indicators; - } - + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -153,18 +136,6 @@ { period.setName( format.formatPeriod( period ) ); } - - // ----------------------------------------------------------------- - // Explode and add indicators from data set - // ----------------------------------------------------------------- - - for ( Indicator indicator : selectedDataSet.getIndicators() ) - { - indicator.setExplodedNumerator( expressionService.explodeExpression( indicator.getNumerator() ) ); - indicator.setExplodedDenominator( expressionService.explodeExpression( indicator.getDenominator() ) ); - - indicators.add( indicator ); - } // ----------------------------------------------------------------- // Clear display mode when loading new data set === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/PageInitAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/PageInitAction.java 2011-07-14 08:39:01 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/PageInitAction.java 2011-07-14 10:31:16 +0000 @@ -32,6 +32,9 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.de.state.SelectedStateManager; +import org.hisp.dhis.expression.ExpressionService; +import org.hisp.dhis.indicator.Indicator; +import org.hisp.dhis.indicator.IndicatorService; import com.opensymphony.xwork2.Action; @@ -59,6 +62,20 @@ this.dataElementService = dataElementService; } + private IndicatorService indicatorService; + + public void setIndicatorService( IndicatorService indicatorService ) + { + this.indicatorService = indicatorService; + } + + private ExpressionService expressionService; + + public void setExpressionService( ExpressionService expressionService ) + { + this.expressionService = expressionService; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -69,6 +86,13 @@ { return significantZeros; } + + private Collection indicators; + + public Collection getIndicators() + { + return indicators; + } // ------------------------------------------------------------------------- // Action implementation @@ -82,6 +106,14 @@ significantZeros = dataElementService.getDataElementsByZeroIsSignificant( true ); + indicators = indicatorService.getIndicatorsWithDataSets(); + + for ( Indicator indicator : indicators ) + { + indicator.setExplodedNumerator( expressionService.explodeExpression( indicator.getNumerator() ) ); + indicator.setExplodedDenominator( expressionService.explodeExpression( indicator.getDenominator() ) ); + } + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2011-07-14 08:39:01 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2011-07-14 10:34:09 +0000 @@ -22,6 +22,8 @@ scope="prototype"> + + - - var i18n_select_data_set = '$encoder.jsEscape( $i18n.getString( "select_data_set" ) , "'")'; - var i18n_select_period = '$encoder.jsEscape( $i18n.getString( "select_period" ) , "'")'; - var i18n_register_complete_dataset_success = '$encoder.jsEscape( $i18n.getString( "register_complete_dataset_success" ) , "'")'; - var i18n_register_complete_dataset_failed = '$encoder.jsEscape( $i18n.getString( "register_complete_dataset_failed" ) , "'")'; - var i18n_undo_register_complete_dataset_success = '$encoder.jsEscape( $i18n.getString( "undo_register_complete_dataset_success" ) , "'")'; - var i18n_value_of_data_element_less = '$encoder.jsEscape( $i18n.getString( "value_of_data_element_less" ) , "'")'; - var i18n_value_of_data_element_greater = '$encoder.jsEscape( $i18n.getString( "value_of_data_element_greater" ) , "'")'; - var i18n_value_too_long = '$encoder.jsEscape( $i18n.getString( "value_is_too_long" ) , "'")'; - var i18n_value_must_integer = '$encoder.jsEscape( $i18n.getString( "value_must_integer" ) , "'")'; - var i18n_value_must_number = '$encoder.jsEscape( $i18n.getString( "value_must_number" ) , "'")'; - var i18n_value_must_positive_integer = '$encoder.jsEscape( $i18n.getString( "value_must_positive_integer" ) , "'")'; - var i18n_value_must_negative_integer = '$encoder.jsEscape( $i18n.getString( "value_must_negative_integer" ) , "'")'; - var i18n_field_unallowed_save_zero = '$encoder.jsEscape( $i18n.getString( "field_unallowed_save_zero" ) , "'")'; - var i18n_saving_value_failed_status_code = '$encoder.jsEscape( $i18n.getString( "saving_value_failed_status_code" ) , "'")'; - var i18n_saving_comment_failed_status_code = '$encoder.jsEscape( $i18n.getString( "saving_comment_failed_status_code" ) , "'")'; - var i18n_saving_minmax_failed_error_code = '$encoder.jsEscape( $i18n.getString( "saving_minmax_failed_error_code" ) , "'")'; - var i18n_confirm_complete = '$encoder.jsEscape( $i18n.getString( "confirm_complete" ) , "'")'; - var i18n_confirm_undo = '$encoder.jsEscape( $i18n.getString( "confirm_undo" ) , "'")'; - var i18n_no_response_from_server = '$encoder.jsEscape( $i18n.getString( "no_response_from_server" ) , "'")'; - - significantZeros = [ - #set( $size = $significantZeros.size() ) - #foreach( $dataElement in $significantZeros )${dataElement.id}#if( $velocityCount < $size ),#end #end ]; +var i18n_select_data_set = '$encoder.jsEscape( $i18n.getString( "select_data_set" ) , "'")'; +var i18n_select_period = '$encoder.jsEscape( $i18n.getString( "select_period" ) , "'")'; +var i18n_register_complete_dataset_success = '$encoder.jsEscape( $i18n.getString( "register_complete_dataset_success" ) , "'")'; +var i18n_register_complete_dataset_failed = '$encoder.jsEscape( $i18n.getString( "register_complete_dataset_failed" ) , "'")'; +var i18n_undo_register_complete_dataset_success = '$encoder.jsEscape( $i18n.getString( "undo_register_complete_dataset_success" ) , "'")'; +var i18n_value_of_data_element_less = '$encoder.jsEscape( $i18n.getString( "value_of_data_element_less" ) , "'")'; +var i18n_value_of_data_element_greater = '$encoder.jsEscape( $i18n.getString( "value_of_data_element_greater" ) , "'")'; +var i18n_value_too_long = '$encoder.jsEscape( $i18n.getString( "value_is_too_long" ) , "'")'; +var i18n_value_must_integer = '$encoder.jsEscape( $i18n.getString( "value_must_integer" ) , "'")'; +var i18n_value_must_number = '$encoder.jsEscape( $i18n.getString( "value_must_number" ) , "'")'; +var i18n_value_must_positive_integer = '$encoder.jsEscape( $i18n.getString( "value_must_positive_integer" ) , "'")'; +var i18n_value_must_negative_integer = '$encoder.jsEscape( $i18n.getString( "value_must_negative_integer" ) , "'")'; +var i18n_field_unallowed_save_zero = '$encoder.jsEscape( $i18n.getString( "field_unallowed_save_zero" ) , "'")'; +var i18n_saving_value_failed_status_code = '$encoder.jsEscape( $i18n.getString( "saving_value_failed_status_code" ) , "'")'; +var i18n_saving_comment_failed_status_code = '$encoder.jsEscape( $i18n.getString( "saving_comment_failed_status_code" ) , "'")'; +var i18n_saving_minmax_failed_error_code = '$encoder.jsEscape( $i18n.getString( "saving_minmax_failed_error_code" ) , "'")'; +var i18n_confirm_complete = '$encoder.jsEscape( $i18n.getString( "confirm_complete" ) , "'")'; +var i18n_confirm_undo = '$encoder.jsEscape( $i18n.getString( "confirm_undo" ) , "'")'; +var i18n_no_response_from_server = '$encoder.jsEscape( $i18n.getString( "no_response_from_server" ) , "'")'; + +significantZeros = [ +#set( $size1 = $significantZeros.size() ) +#foreach( $dataElement in $significantZeros ) +${dataElement.id}#if( $velocityCount < $size1 ),#end #end ]; + +#foreach( $indicator in $indicators ) +indicatorFormulas['${indicator.id}'] = '($!{indicator.explodedNumerator})/($!{indicator.explodedDenominator})*($!{indicator.indicatorType.factor})'; +#end

$i18n.getString( "data_entry" ) #openHelp( "dataEntry" )