=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/configuration/Configuration.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/configuration/Configuration.java 2011-12-26 10:07:59 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/configuration/Configuration.java 2012-06-27 16:54:45 +0000 @@ -30,6 +30,7 @@ import java.io.Serializable; import org.hisp.dhis.dataelement.DataElementGroup; +import org.hisp.dhis.organisationunit.OrganisationUnitLevel; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.period.YearlyPeriodType; import org.hisp.dhis.user.UserGroup; @@ -53,6 +54,8 @@ private UserGroup completenessRecipients; + private OrganisationUnitLevel offlineOrganisationUnitLevel; + private DataElementGroup infrastructuralDataElements; private PeriodType infrastructuralPeriodType; @@ -104,6 +107,16 @@ this.completenessRecipients = completenessRecipients; } + public void setOfflineOrganisationUnitLevel( OrganisationUnitLevel offlineOrganisationUnitLevel ) + { + this.offlineOrganisationUnitLevel = offlineOrganisationUnitLevel; + } + + public OrganisationUnitLevel getOfflineOrganisationUnitLevel() + { + return offlineOrganisationUnitLevel; + } + public DataElementGroup getInfrastructuralDataElements() { return infrastructuralDataElements; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2012-04-27 17:03:51 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2012-06-27 16:54:45 +0000 @@ -69,7 +69,7 @@ final String KEY_ORGUNITGROUPSET_AGG_LEVEL = "orgUnitGroupSetAggregationLevel"; final String KEY_SMS_CONFIG = "SMS_CONFIG"; final String KEY_CACHE_STRATEGY = "keyCacheStrategy"; - + final int DEFAULT_MAX_NUMBER_OF_ATTEMPTS = 20; final int DEFAULT_TIMEFRAME_MINUTES = 1; final double DEFAULT_FACTOR_OF_DEVIATION = 2.0; === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/configuration/hibernate/Configuration.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/configuration/hibernate/Configuration.hbm.xml 2011-10-07 11:48:18 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/configuration/hibernate/Configuration.hbm.xml 2012-06-27 16:54:45 +0000 @@ -1,7 +1,7 @@ + "-//Hibernate/Hibernate Mapping DTD 3.0//EN" + "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> @@ -10,17 +10,20 @@ - - - - - - - + + + + + + + + + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetGeneralSettingsAction.java 2012-03-05 16:37:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/GetGeneralSettingsAction.java 2012-06-27 16:54:45 +0000 @@ -27,23 +27,25 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - +import com.opensymphony.xwork2.Action; import org.hisp.dhis.common.comparator.IdentifiableObjectNameComparator; import org.hisp.dhis.configuration.Configuration; import org.hisp.dhis.configuration.ConfigurationService; import org.hisp.dhis.dataelement.DataElementGroup; import org.hisp.dhis.dataelement.DataElementService; +import org.hisp.dhis.organisationunit.OrganisationUnitLevel; +import org.hisp.dhis.organisationunit.OrganisationUnitService; +import org.hisp.dhis.organisationunit.comparator.OrganisationUnitLevelComparator; import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; import org.hisp.dhis.user.comparator.UserGroupComparator; -import com.opensymphony.xwork2.Action; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; /** * @author Lars Helge Overland @@ -84,6 +86,13 @@ this.userGroupService = userGroupService; } + private OrganisationUnitService organisationUnitService; + + public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) + { + this.organisationUnitService = organisationUnitService; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -96,12 +105,24 @@ } private UserGroup completenessRecipients; - + public UserGroup getCompletenessRecipients() { return completenessRecipients; } + private OrganisationUnitLevel offlineOrganisationUnitLevel; + + public OrganisationUnitLevel getOfflineOrganisationUnitLevel() + { + return offlineOrganisationUnitLevel; + } + + public void setOfflineOrganisationUnitLevel( OrganisationUnitLevel offlineOrganisationUnitLevel ) + { + this.offlineOrganisationUnitLevel = offlineOrganisationUnitLevel; + } + private Collection aggregationStrategies; public Collection getAggregationStrategies() @@ -130,6 +151,13 @@ return userGroups; } + private List organisationUnitLevels; + + public List getOrganisationUnitLevels() + { + return organisationUnitLevels; + } + private Configuration configuration; public Configuration getConfiguration() @@ -148,7 +176,17 @@ feedbackRecipients = configurationService.getConfiguration().getFeedbackRecipients(); completenessRecipients = configurationService.getConfiguration().getCompletenessRecipients(); - + + offlineOrganisationUnitLevel = configurationService.getConfiguration().getOfflineOrganisationUnitLevel(); + + if ( offlineOrganisationUnitLevel == null ) + { + // default to highest level + // TODO what do we do if the orgunit level hierarchy hasn't been created yet? + int size = organisationUnitService.getOrganisationUnitLevels().size(); + offlineOrganisationUnitLevel = organisationUnitService.getOrganisationUnitLevelByLevel( size ); + } + dataElementGroups = new ArrayList( dataElementService.getAllDataElementGroups() ); Collections.sort( dataElementGroups, IdentifiableObjectNameComparator.INSTANCE ); @@ -159,6 +197,10 @@ Collections.sort( userGroups, new UserGroupComparator() ); + organisationUnitLevels = organisationUnitService.getOrganisationUnitLevels(); + + Collections.sort( organisationUnitLevels, new OrganisationUnitLevelComparator() ); + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java 2012-03-12 12:33:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java 2012-06-27 16:54:45 +0000 @@ -27,22 +27,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.setting.SystemSettingManager.KEY_COMPLETENESS_OFFSET; -import static org.hisp.dhis.setting.SystemSettingManager.KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED; -import static org.hisp.dhis.setting.SystemSettingManager.KEY_FACTOR_OF_DEVIATION; -import static org.hisp.dhis.setting.SystemSettingManager.KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART; -import static org.hisp.dhis.setting.SystemSettingManager.KEY_CACHE_STRATEGY; - +import com.opensymphony.xwork2.Action; import org.hisp.dhis.configuration.Configuration; import org.hisp.dhis.configuration.ConfigurationService; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.i18n.I18n; -import org.hisp.dhis.setting.SystemSettingManager; +import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; +import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.user.UserGroupService; -import com.opensymphony.xwork2.Action; +import static org.hisp.dhis.setting.SystemSettingManager.*; /** * @author Lars Helge Overland @@ -90,12 +86,19 @@ this.periodService = periodService; } + private OrganisationUnitService organisationUnitService; + + public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) + { + this.organisationUnitService = organisationUnitService; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- private String cacheStrategy; - + public void setCacheStrategy( String cacheStrategy ) { this.cacheStrategy = cacheStrategy; @@ -142,7 +145,7 @@ { this.feedbackRecipients = feedbackRecipients; } - + private Integer completenessRecipients; public void setCompletenessRecipients( Integer completenessRecipients ) @@ -150,6 +153,13 @@ this.completenessRecipients = completenessRecipients; } + private Integer offlineOrganisationUnitLevel; + + public void setOfflineOrganisationUnitLevel( Integer offlineOrganisationUnitLevel ) + { + this.offlineOrganisationUnitLevel = offlineOrganisationUnitLevel; + } + private Integer completenessOffset; public void setCompletenessOffset( Integer completenessOffset ) @@ -194,7 +204,15 @@ { configuration.setCompletenessRecipients( userGroupService.getUserGroup( completenessRecipients ) ); } - + + System.err.println( "Setting offline1: " + offlineOrganisationUnitLevel ); + + if ( offlineOrganisationUnitLevel != null ) + { + System.err.println( "Setting offline2: " + offlineOrganisationUnitLevel ); + configuration.setOfflineOrganisationUnitLevel( organisationUnitService.getOrganisationUnitLevel( offlineOrganisationUnitLevel ) ); + } + if ( infrastructuralDataElements != null ) { configuration.setInfrastructuralDataElements( dataElementService @@ -210,7 +228,7 @@ configurationService.setConfiguration( configuration ); message = i18n.getString( "settings_updated" ); - + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml 2012-03-05 16:37:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/META-INF/dhis/beans.xml 2012-06-27 16:54:45 +0000 @@ -1,54 +1,63 @@ - + - + + - + - + + - + - + - - + + - - + + - - + + @@ -66,8 +75,9 @@ - + @@ -78,16 +88,18 @@ - - + + - + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties 2012-05-03 16:28:36 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/org/hisp/dhis/settings/i18n_module.properties 2012-06-27 16:54:45 +0000 @@ -102,4 +102,5 @@ cache_strategy=Cache strategy no_cache=No cache cache_until_6am_tomorrow=Cache until 6 AM tomorrow -cache_for_two_weeks=Cache for two weeks \ No newline at end of file +cache_for_two_weeks=Cache for two weeks +offline_orgunit_level=Offline Organisation Unit Level === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemGeneralSettings.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemGeneralSettings.vm 2012-04-16 12:26:55 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/webapp/dhis-web-maintenance-settings/systemGeneralSettings.vm 2012-06-27 16:54:45 +0000 @@ -6,7 +6,8 @@ infrastructuralDataElements: getFieldValue( 'infrastructuralDataElements' ), infrastructuralPeriodType: getFieldValue( 'infrastructuralPeriodType' ), feedbackRecipients: getFieldValue( 'feedbackRecipients' ), - completenessRecipients: getFieldValue( 'completenessRecipients' ), + completenessRecipients: getFieldValue( 'completenessRecipients' ), + offlineOrganisationUnitLevel: getFieldValue( 'offlineOrganisationUnitLevel' ), omitIndicatorsZeroNumeratorDataMart: jQuery( '#omitIndicatorsZeroNumeratorDataMart' ).is( ':checked' ), disableDataEntryWhenCompleted: jQuery( '#disableDataEntryWhenCompleted' ).is( ':checked' ), factorDeviation: getFieldValue( 'factorDeviation' ), @@ -78,6 +79,17 @@

+ +

$i18n.getString( "offline_orgunit_level" )

+ +

+ +

+

$i18n.getString( "omit_indicators_zero_numerator_data_mart" )