=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2014-04-14 11:23:57 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2014-04-30 17:30:27 +0000 @@ -96,7 +96,7 @@ public static final List DATA_DIMS = Arrays.asList( INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATAELEMENT_OPERAND_ID, DATASET_DIM_ID ); public static final List FIXED_DIMS = Arrays.asList( DATA_X_DIM_ID, INDICATOR_DIM_ID, DATAELEMENT_DIM_ID, DATASET_DIM_ID, PERIOD_DIM_ID, ORGUNIT_DIM_ID ); - public static final int MAX_DIM_OPT_PERM = 50000; + public static final int DEFAULT_MAX_DIM_OPT_PERM = 50000; private static final List COMPLETENESS_DIMENSION_TYPES = Arrays.asList( DATASET, ORGANISATIONUNIT, ORGANISATIONUNIT_GROUPSET ); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java 2014-04-28 18:23:49 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java 2014-04-30 17:30:27 +0000 @@ -36,7 +36,7 @@ import static org.hisp.dhis.analytics.AggregationType.STDDEV; import static org.hisp.dhis.analytics.AggregationType.VARIANCE; import static org.hisp.dhis.analytics.DataQueryParams.LEVEL_PREFIX; -import static org.hisp.dhis.analytics.DataQueryParams.MAX_DIM_OPT_PERM; +import static org.hisp.dhis.analytics.DataQueryParams.DEFAULT_MAX_DIM_OPT_PERM; import static org.hisp.dhis.common.DimensionalObject.CATEGORYOPTIONCOMBO_DIM_ID; import static org.hisp.dhis.common.DimensionalObject.DATAELEMENT_DIM_ID; import static org.hisp.dhis.common.DimensionalObject.DATASET_DIM_ID; @@ -75,6 +75,7 @@ import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.PeriodType; +import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.system.util.MathUtils; import org.hisp.dhis.system.util.PaginatedList; import org.springframework.beans.factory.annotation.Autowired; @@ -93,6 +94,9 @@ @Autowired private PartitionManager partitionManager; + @Autowired + private SystemSettingManager systemSettingManager; + // ------------------------------------------------------------------------- // DefaultQueryPlanner implementation // ------------------------------------------------------------------------- @@ -139,9 +143,9 @@ violation = "Category option combos cannot be specified as filter"; } - if ( !params.isIgnoreLimit() && params.getNumberOfDimensionOptionPermutations() > MAX_DIM_OPT_PERM ) + if ( !params.isIgnoreLimit() && params.getNumberOfDimensionOptionPermutations() > getMaxLimit() ) { - violation = "Table exceeds max number of cells: " + MAX_DIM_OPT_PERM + " (" + params.getNumberOfDimensionOptionPermutations() + ")"; + violation = "Table exceeds max number of cells: " + getMaxLimit() + " (" + params.getNumberOfDimensionOptionPermutations() + ")"; } if ( !params.getDuplicateDimensions().isEmpty() ) @@ -711,4 +715,12 @@ return map; } + + /** + * Returns the max records limit. + */ + private int getMaxLimit() + { + return (Integer) systemSettingManager.getSystemSetting( SystemSettingManager.KEY_ANALYTICS_MAX_LIMIT, DEFAULT_MAX_DIM_OPT_PERM ); + } } === 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 2014-04-30 15:47:23 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java 2014-04-30 17:30:27 +0000 @@ -209,8 +209,6 @@ public String execute() { - systemSettingManager.saveSystemSetting( KEY_CALENDAR, calendar ); - systemSettingManager.saveSystemSetting( KEY_DATE_FORMAT, dateFormat ); systemSettingManager.saveSystemSetting( KEY_CACHE_STRATEGY, cacheStrategy ); systemSettingManager.saveSystemSetting( KEY_ANALYTICS_MAX_LIMIT, analyticsMaxLimit ); systemSettingManager.saveSystemSetting( KEY_OMIT_INDICATORS_ZERO_NUMERATOR_DATAMART, omitIndicatorsZeroNumeratorDataMart ); @@ -218,6 +216,8 @@ systemSettingManager.saveSystemSetting( KEY_PHONE_NUMBER_AREA_CODE, phoneNumberAreaCode ); systemSettingManager.saveSystemSetting( KEY_MULTI_ORGANISATION_UNIT_FORMS, multiOrganisationUnitForms ); systemSettingManager.saveSystemSetting( KEY_GOOGLE_ANALYTICS_UA, googleAnalyticsUA ); + systemSettingManager.saveSystemSetting( KEY_CALENDAR, calendar ); + systemSettingManager.saveSystemSetting( KEY_DATE_FORMAT, dateFormat ); Configuration configuration = configurationService.getConfiguration();