=== 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" )