=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java 2013-05-10 16:29:19 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java 2013-07-22 11:47:18 +0000
@@ -400,6 +400,12 @@
void updateOptionCombos( DataElementCategoryCombo categoryCombo );
/**
+ * Generates the complete set of category option combos for all category
+ * combos.
+ */
+ void updateAllOptionCombos();
+
+ /**
* Populates all transient properties on each Operand in the given collection.
*
* @param operands the collection of Operands.
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java 2013-05-10 16:29:19 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java 2013-07-22 11:47:18 +0000
@@ -38,6 +38,8 @@
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.hisp.dhis.common.GenericDimensionalObjectStore;
import org.hisp.dhis.common.GenericIdentifiableObjectStore;
import org.hisp.dhis.concept.Concept;
@@ -53,6 +55,8 @@
public class DefaultDataElementCategoryService
implements DataElementCategoryService
{
+ private static final Log log = LogFactory.getLog( DefaultDataElementCategoryService.class );
+
// -------------------------------------------------------------------------
// Dependencies
// -------------------------------------------------------------------------
@@ -540,16 +544,34 @@
List generatedOptionCombos = categoryCombo.generateOptionCombosList();
Set persistedOptionCombos = categoryCombo.getOptionCombos();
+ boolean modified = false;
+
for ( DataElementCategoryOptionCombo optionCombo : generatedOptionCombos )
{
if ( !persistedOptionCombos.contains( optionCombo ) )
- {
+ {
categoryCombo.getOptionCombos().add( optionCombo );
addDataElementCategoryOptionCombo( optionCombo );
+
+ log.info( "Added missing category option combo: " + optionCombo + " for category combo: " + categoryCombo.getName() );
+ modified = true;
}
}
- updateDataElementCategoryCombo( categoryCombo );
+ if ( modified )
+ {
+ updateDataElementCategoryCombo( categoryCombo );
+ }
+ }
+
+ public void updateAllOptionCombos()
+ {
+ Collection categoryCombos = getAllDataElementCategoryCombos();
+
+ for ( DataElementCategoryCombo categoryCombo : categoryCombos )
+ {
+ updateOptionCombos( categoryCombo );
+ }
}
public Map getDataElementCategoryOptionComboUidIdMap()
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java 2013-06-19 13:43:51 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/maintenance/PerformMaintenanceAction.java 2013-07-22 11:47:18 +0000
@@ -35,6 +35,7 @@
import org.hisp.dhis.analytics.AnalyticsTableService;
import org.hisp.dhis.common.DeleteNotAllowedException;
import org.hisp.dhis.completeness.DataSetCompletenessService;
+import org.hisp.dhis.dataelement.DataElementCategoryService;
import org.hisp.dhis.datamart.DataMartManager;
import org.hisp.dhis.maintenance.MaintenanceService;
import org.hisp.dhis.period.Period;
@@ -106,6 +107,13 @@
{
this.currentUserService = currentUserService;
}
+
+ private DataElementCategoryService categoryService;
+
+ public void setCategoryService( DataElementCategoryService categoryService )
+ {
+ this.categoryService = categoryService;
+ }
// -------------------------------------------------------------------------
// Input
@@ -153,6 +161,13 @@
this.prunePeriods = prunePeriods;
}
+ private boolean updateCategoryOptionCombos;
+
+ public void setUpdateCategoryOptionCombos( boolean updateCategoryOptionCombos )
+ {
+ this.updateCategoryOptionCombos = updateCategoryOptionCombos;
+ }
+
// -------------------------------------------------------------------------
// Action implementation
// -------------------------------------------------------------------------
@@ -160,6 +175,8 @@
public String execute()
throws Exception
{
+ String username = currentUserService.getCurrentUsername();
+
if ( clearAnalytics )
{
analyticsTableService.dropTables();
@@ -172,7 +189,7 @@
aggregatedDataValueService.dropDataMart();
aggregatedDataValueService.createDataMart();
- log.info( "'" + currentUserService.getCurrentUsername() + "': Cleared data mart" );
+ log.info( "'" + username + "': Cleared data mart" );
}
if ( dataMartIndex )
@@ -190,7 +207,7 @@
completenessService.dropIndex();
completenessService.createIndex();
- log.info( "'" + currentUserService.getCurrentUsername() + "': Rebuilt data mart indexes" );
+ log.info( "'" + username + "': Rebuilt data mart indexes" );
}
if ( zeroValues )
@@ -204,14 +221,21 @@
{
completenessService.deleteDataSetCompleteness();
- log.info( "'" + currentUserService.getCurrentUsername() + "': Cleared data completeness" );
+ log.info( "'" + username + "': Cleared data completeness" );
}
if ( prunePeriods )
{
prunePeriods();
- log.info( "'" + currentUserService.getCurrentUsername() + "': Pruned periods" );
+ log.info( "'" + username + "': Pruned periods" );
+ }
+
+ if ( updateCategoryOptionCombos )
+ {
+ categoryService.updateAllOptionCombos();
+
+ log.info( "'" + username + "': Updated category option combos" );
}
return SUCCESS;
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2013-06-19 13:43:51 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2013-07-22 11:47:18 +0000
@@ -14,6 +14,7 @@
+
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-05-27 15:33:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2013-07-22 11:47:18 +0000
@@ -320,4 +320,5 @@
generating_min_max_values=Generating min-max values
done=Done
period_structure=Period structure
- data_element_category_option_combo=Data element category option combinations
\ No newline at end of file
+data_element_category_option_combo=Data element category option combinations
+update_category_option_combos=Update category option combinations
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js 2013-04-22 08:10:07 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/maintenance.js 2013-07-22 11:47:18 +0000
@@ -7,8 +7,9 @@
var zeroValues = document.getElementById( "zeroValues" ).checked;
var dataSetCompleteness = document.getElementById( "dataSetCompleteness" ).checked;
var prunePeriods = document.getElementById( "prunePeriods" ).checked;
+ var updateCategoryOptionCombos = document.getElementById( "updateCategoryOptionCombos" ).checked;
- if ( clearAnalytics || clearDataMart || dataMartIndex || zeroValues || dataSetCompleteness || prunePeriods )
+ if ( clearAnalytics || clearDataMart || dataMartIndex || zeroValues || dataSetCompleteness || prunePeriods || updateCategoryOptionCombos )
{
setWaitMessage( i18n_performing_maintenance );
@@ -17,7 +18,8 @@
"&dataMartIndex=" + dataMartIndex +
"&zeroValues=" + zeroValues +
"&dataSetCompleteness=" + dataSetCompleteness +
- "&prunePeriods=" + prunePeriods;
+ "&prunePeriods=" + prunePeriods +
+ "&updateCategoryOptionCombos=" + updateCategoryOptionCombos;
$.ajax({
type: "POST",
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm 2013-04-22 08:10:07 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm 2013-07-22 11:47:18 +0000
@@ -43,6 +43,11 @@
+
+
+
+
+
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/section/GreySectionAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/section/GreySectionAction.java 2013-07-20 11:17:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/section/GreySectionAction.java 2013-07-22 11:47:18 +0000
@@ -112,7 +112,7 @@
return sectionIsMultiDimensional;
}
- Map> optionsMap = new HashMap>();
+ private Map> optionsMap = new HashMap>();
public Map> getOptionsMap()
{