← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1345: Added common progress-indicator template. Re-impl data integrity checks using ajax. Applied progr...

 

------------------------------------------------------------
revno: 1345
committer: Lars Helge Oeverland <larshelge@xxxxxxxxx>
branch nick: trunk
timestamp: Tue 2010-01-26 15:30:54 +0100
message:
  Added common progress-indicator template. Re-impl data integrity checks using ajax. Applied progress-indicator template to data integrity checks.
added:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader/
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader/loader.vm
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/ajax-loader-circle.gif
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/dataIntegrity.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm
modified:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js
  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/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription.
=== added directory 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader'
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader/loader.vm'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader/loader.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/loader/loader.vm	2010-01-26 14:30:54 +0000
@@ -0,0 +1,26 @@
+
+<style type="text/css">
+    
+div#loaderDiv
+{
+  color: #1c425c;
+  font-size: 14px;
+  border: 1px solid #9aaab5;
+  width: 500px;
+  height: 230px;
+  text-align: center;
+}
+
+</style>
+
+<div id="loaderDiv">
+    
+    <br><br><br>
+    
+    <img src="../images/ajax-loader-circle.gif">
+    
+    <br><br><br>
+        
+    <p>$i18n.getString( "please_wait_while_the_system_is_processing" )...</p>
+    
+</div>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js	2009-12-03 07:32:07 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js	2010-01-26 14:30:54 +0000
@@ -569,3 +569,12 @@
 	
 	return params;
 }
+
+/**
+ * Hides loader div and shows content div.
+ */
+function hideLoader()
+{
+    $( "#loaderDiv" ).css({ display: "none" });
+    $( "#contentDiv" ).css({ display: "block" });
+}

=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/ajax-loader-circle.gif'
Binary files dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/ajax-loader-circle.gif	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/ajax-loader-circle.gif	2010-01-26 14:30:54 +0000 differ
=== 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	2010-01-25 11:54:22 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties	2010-01-26 14:30:54 +0000
@@ -164,3 +164,4 @@
 select_different_org_units											= Please select two different organisation units
 select_different_data_elements										= Please select two different data elements
 filter																= Filter
+please_wait_while_the_system_is_processing							= Please wait while the system is processing
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml	2010-01-25 09:23:35 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml	2010-01-26 14:30:54 +0000
@@ -200,10 +200,16 @@
 		<!-- Data integrity -->
 
 		<action name="displayDataIntegrityForm"
+			class="org.hisp.dhis.dataadmin.action.NoAction">
+			<result name="success" type="velocity">/main.vm</result>
+			<param name="page">/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm</param>
+			<param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+			<param name="javascripts">javascript/dataIntegrity.js</param>
+		</action>
+		
+		<action name="getDataIntegrity"
 			class="org.hisp.dhis.dataadmin.action.dataintegrity.GetDataIntegrityAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm</param>
-			<param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+			<result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
 		</action>
 
 		<!-- Statistics -->
@@ -310,7 +316,7 @@
 			<result name="success" type="velocity">/main.vm</result>
             <param name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
             <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
-            <param name="javascripts">../dhis-web-commons/oust/oust.js,javascript/duplicateDataElimination.js</param>
+            <param name="javascripts">javascript/duplicateDataElimination.js</param>
         </action>
 
 		<action name="eliminateDuplicateData" 

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm	2009-12-02 15:08:11 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm	2010-01-26 14:30:54 +0000
@@ -1,126 +1,33 @@
 
-#macro( integrityHeader $header $size $divId )
-
-<h4>
-    ${header}&nbsp;
-    #if ( ${size} > 0 )
-        (${size})&nbsp;&nbsp;<img src="../images/down.png" style="cursor:pointer" onclick="showHideDiv( '${divId}' )" title="$i18n.getString( 'view_violations' )">
-    #else
-        <img src="../images/check.png" title="$i18n.getString( 'no_violations' )">
-    #end
-</h4>
-    
-#end
-
-#macro( violationList $id $list )
-	
-<div style="display:none" id="${id}">
-    <table>
-	#foreach ( $object in $list )
-	    <tr>
-	        <td>${object.name}</td>
-	    </tr>
-	#end
-	</table>
-</div>
-	
-#end
+#macro( integrityItem $header $id )
+<h4>${header}&nbsp;<img id="${id}Button"></h4>
+
+<div id="${id}Div"></div>
+
+#end
+
+#parse( "dhis-web-commons/loader/loader.vm" )
+
+<div id="contentDiv" style="display:none">
 
 <h3>$i18n.getString( "data_integrity_checks_performed" )</h3>
 
-#integrityHeader( $i18n.getString( "data_elements_without_data_set" ) $dataElementsWithoutDataSet.size() "dataElementsWithoutDataSet" )
-#violationList( "dataElementsWithoutDataSet" $dataElementsWithoutDataSet )
-
-#integrityHeader( $i18n.getString( "data_elements_without_groups" ) $dataElementsWithoutGroups.size() "dataElementsWithoutGroups" )
-#violationList( "dataElementsWithoutGroups" $dataElementsWithoutGroups )
-
-#integrityHeader( $i18n.getString( "data_elements_assigned_to_period_types_with_different_period_types" ) $dataElementsAssignedToDataSetsWithDifferentPeriodTypes.size() "dataElementsAssignedToDataSetsWithDifferentPeriodTypes" )
-<div style="display:none" id="dataElementsAssignedToDataSetsWithDifferentPeriodTypes">
-    <table>
-    #foreach ( $dataElement in $dataElementsAssignedToDataSetsWithDifferentPeriodTypes.keySet() )
-        <tr>
-            <td>
-            	#set( $size = $dataElementsAssignedToDataSetsWithDifferentPeriodTypes.get( $dataElement ).size() )
-            	${dataElement.name} (
-            	#foreach ( $dataSet in $dataElementsAssignedToDataSetsWithDifferentPeriodTypes.get( $dataElement ) )
-            		${dataSet.name}#if( $velocityCount < $size ), #end
-	            #end)
-            </td>
-        </tr>
-    #end
-    </table>
-</div>
-
-#integrityHeader( $i18n.getString( "data_sets_not_assigned_to_organisation_units" ) $dataSetsNotAssignedToOrganisationUnits.size() "dataSetsNotAssignedToOrganisationUnits" )
-#violationList( "dataSetsNotAssignedToOrganisationUnits" $dataSetsNotAssignedToOrganisationUnits )
-
-#integrityHeader( $i18n.getString( "indicators_with_identical_formulas" ) $indicatorsWithIdenticalFormulas.size() "indicatorsWithIdenticalFormulas" )
-#violationList( "indicatorsWithIdenticalFormulas" $indicatorsWithIdenticalFormulas )
-
-#integrityHeader( $i18n.getString( "indicators_without_groups" ) $indicatorsWithoutGroups.size() "indicatorsWithoutGroups" )
-#violationList( "indicatorsWithoutGroups" $indicatorsWithoutGroups )
-
-#integrityHeader( $i18n.getString( "invalid_indicator_numerators" ) $invalidIndicatorNumerators.size() "invalidIndicatorNumerators" )
-<div style="display:none" id="invalidIndicatorNumerators">
-	<table>
-	#foreach ( $indicator in $invalidIndicatorNumerators.keySet() )
-		<tr>
-			<td>${indicator.name}: $i18n.getString( $invalidIndicatorNumerators.get( $indicator ) )</td>
-		</tr>
-	#end
-	</table>
-</div>
-
-#integrityHeader( $i18n.getString( "invalid_indicator_denominators" ) $invalidIndicatorDenominators.size() "invalidIndicatorDenominators" )
-<div style="display:none" id="invalidIndicatorDenominators">
-    <table>
-    #foreach ( $indicator in $invalidIndicatorDenominators.keySet() )
-        <tr>
-            <td>${indicator.name}: $i18n.getString( $invalidIndicatorDenominators.get( $indicator ) )</td>
-        </tr>
-    #end
-    </table>
-</div>
-
-#integrityHeader( $i18n.getString( "organisation_units_with_cyclic_references" ) $organisationUnitsWithCyclicReferences.size() "organisationUnitsWithCyclicReferences" )
-#violationList( "organisationUnitsWithCyclicReferences" $organisationUnitsWithCyclicReferences )
-
-#integrityHeader( $i18n.getString( "orphaned_organisation_units" ) $orphanedOrganisationUnits.size() "orphanedOrganisationUnits" )
-#violationList( "orphanedOrganisationUnits" $orphanedOrganisationUnits )
-
-#integrityHeader( $i18n.getString( "organisation_units_without_groups" ) $organisationUnitsWithoutGroups.size() "organisationUnitsWithoutGroups" )
-#violationList( "organisationUnitsWithoutGroups" $organisationUnitsWithoutGroups )
-
-#integrityHeader( $i18n.getString( "organisation_units_violating_compulsory_group_sets" ) $organisationUnitsViolatingCompulsoryGroupSets.size() "organisationUnitsViolatingCompulsoryGroupSets" )
-#violationList( "organisationUnitsViolatingCompulsoryGroupSets" $organisationUnitsViolatingCompulsoryGroupSets )
-
-#integrityHeader( $i18n.getString( "organisation_units_violation_exclusive_group_sets" ) $organisationUnitsViolatingExclusiveGroupSets.size() "organisationUnitsViolatingExclusiveGroupSets" )
-#violationList( "organisationUnitsViolatingExclusiveGroupSets" $organisationUnitsViolatingExclusiveGroupSets )
-
-#integrityHeader( $i18n.getString( "organisation_unit_groups_without_group_sets" ) $organisationUnitGroupsWithoutGroupSets.size() "organisationUnitGroupsWithoutGroupSets" )
-#violationList( "organisationUnitGroupsWithoutGroupSets" $organisationUnitGroupsWithoutGroupSets )
-
-#integrityHeader( $i18n.getString( "validation_rules_without_groups" ) $validationRulesWithoutGroups.size() "validationRulesWithoutGroups" )
-#violationList( "validationRulesWithoutGroups" $validationRulesWithoutGroups )
-
-#integrityHeader( $i18n.getString( "invalid_validation_rule_left_side_expressions" ) $invalidValidationRuleLeftSideExpressions.size() "invalidValidationRuleLeftSideExpressions" )
-<div style="display:none" id="invalidValidationRuleLeftSideExpressions">
-    <table>
-    #foreach ( $rule in $invalidValidationRuleLeftSideExpressions.keySet() )
-        <tr>
-            <td>${rule.name}: $i18n.getString( $invalidValidationRuleLeftSideExpressions.get( $rule ) )</td>
-        </tr>
-    #end
-    </table>
-</div>
-
-#integrityHeader( $i18n.getString( "invalid_validation_rule_right_side_expressions" ) $invalidValidationRuleRightSideExpressions.size() "invalidValidationRuleRightSideExpressions" )
-<div style="display:none" id="invalidValidationRuleRightSideExpressions">
-    <table>
-    #foreach ( $rule in $invalidValidationRuleRightSideExpressions.keySet() )
-        <tr>
-            <td>${rule.name}: $i18n.getString( $invalidValidationRuleRightSideExpressions.get( $rule ) )</td>
-        </tr>
-    #end
-    </table>
-</div>
+#integrityItem( $i18n.getString( "data_elements_without_data_set" ) "dataElementsWithoutDataSet" )
+#integrityItem( $i18n.getString( "data_elements_without_groups" ) "dataElementsWithoutGroups" )
+#integrityItem( $i18n.getString( "data_elements_assigned_to_period_types_with_different_period_types" ) "dataElementsAssignedToDataSetsWithDifferentPeriodTypes" )
+#integrityItem( $i18n.getString( "data_sets_not_assigned_to_organisation_units" ) "dataSetsNotAssignedToOrganisationUnits" )
+#integrityItem( $i18n.getString( "indicators_with_identical_formulas" ) "indicatorsWithIdenticalFormulas" )
+#integrityItem( $i18n.getString( "indicators_without_groups" ) "indicatorsWithoutGroups" )
+#integrityItem( $i18n.getString( "invalid_indicator_numerators" ) "invalidIndicatorNumerators" )
+#integrityItem( $i18n.getString( "invalid_indicator_denominators" ) "invalidIndicatorDenominators" )
+#integrityItem( $i18n.getString( "organisation_units_with_cyclic_references" ) "organisationUnitsWithCyclicReferences" )
+#integrityItem( $i18n.getString( "orphaned_organisation_units" ) "orphanedOrganisationUnits" )
+#integrityItem( $i18n.getString( "organisation_units_without_groups" ) "organisationUnitsWithoutGroups" )
+#integrityItem( $i18n.getString( "organisation_units_violating_compulsory_group_sets" ) "organisationUnitsViolatingCompulsoryGroupSets" )
+#integrityItem( $i18n.getString( "organisation_units_violation_exclusive_group_sets" ) "organisationUnitsViolatingExclusiveGroupSets" )
+#integrityItem( $i18n.getString( "organisation_unit_groups_without_group_sets" ) "organisationUnitGroupsWithoutGroupSets" )
+#integrityItem( $i18n.getString( "validation_rules_without_groups" ) "validationRulesWithoutGroups" )
+#integrityItem( $i18n.getString( "invalid_validation_rule_left_side_expressions" ) "invalidValidationRuleLeftSideExpressions" )
+#integrityItem( $i18n.getString( "invalid_validation_rule_right_side_expressions" ) "invalidValidationRuleRightSideExpressions" )
+
+</div>
\ No newline at end of file

=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/dataIntegrity.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/dataIntegrity.js	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/dataIntegrity.js	2010-01-26 14:30:54 +0000
@@ -0,0 +1,59 @@
+
+$( document ).ready( function()
+{
+    $.getJSON( "getDataIntegrity.action", {}, populateIntegrityItems );
+} );
+
+function populateIntegrityItems( json )
+{
+	hideLoader();
+	
+    displayViolationList( json.dataElementsWithoutDataSet, "dataElementsWithoutDataSet" );
+    displayViolationList( json.dataElementsWithoutGroups, "dataElementsWithoutGroups" );
+    displayViolationList( json.dataElementsAssignedToDataSetsWithDifferentPeriodTypes, "dataElementsAssignedToDataSetsWithDifferentPeriodTypes" );
+    displayViolationList( json.dataSetsNotAssignedToOrganisationUnits, "dataSetsNotAssignedToOrganisationUnits" );
+    displayViolationList( json.indicatorsWithIdenticalFormulas, "indicatorsWithIdenticalFormulas" );
+    displayViolationList( json.indicatorsWithoutGroups, "indicatorsWithoutGroups" );
+    displayViolationList( json.invalidIndicatorNumerators, "invalidIndicatorNumerators" );
+    displayViolationList( json.invalidIndicatorDenominators, "invalidIndicatorDenominators" );
+    displayViolationList( json.organisationUnitsWithCyclicReferences, "organisationUnitsWithCyclicReferences" );
+    displayViolationList( json.orphanedOrganisationUnits, "orphanedOrganisationUnits" );
+    displayViolationList( json.organisationUnitsWithoutGroups, "organisationUnitsWithoutGroups" );
+    displayViolationList( json.organisationUnitsViolatingCompulsoryGroupSets, "organisationUnitsViolatingCompulsoryGroupSets" );
+    displayViolationList( json.organisationUnitsViolatingExclusiveGroupSets, "organisationUnitsViolatingExclusiveGroupSets" );
+    displayViolationList( json.organisationUnitGroupsWithoutGroupSets, "organisationUnitGroupsWithoutGroupSets" );
+    displayViolationList( json.validationRulesWithoutGroups, "validationRulesWithoutGroups" );
+    displayViolationList( json.invalidValidationRuleLeftSideExpressions, "invalidValidationRuleLeftSideExpressions" );
+    displayViolationList( json.invalidValidationRuleRightSideExpressions, "invalidValidationRuleRightSideExpressions" );
+}
+
+function displayViolationList( list, id )
+{
+    if ( list.length > 0 )
+    {
+    	// Display image button
+    	
+        $( "#" + id + "Button" )
+           .attr({ src: "../images/down.png", title: "View violations" })
+           .css({ cursor: "pointer" })
+           .click( function() { showHideDiv( id + "Div" ) } );
+
+        // Populate and hide violation div
+
+        var violations = "";
+        
+        for ( var i = 0; i < list.length; i++ )
+        {
+            violations += list[i] + "<br>";
+        }
+        
+        $( "#" + id + "Div" )
+            .html( violations )
+            .css({ display: "none" });        
+    }
+    else
+    {
+        $( "#" + id + "Button" )
+            .attr({ src: "../images/check.png", title: "No violations" });
+    }
+}

=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm	2010-01-26 14:30:54 +0000
@@ -0,0 +1,47 @@
+#macro( violation $name $list )
+#set( $size = $list.size() )
+"${name}": [
+#foreach( $o in $list )
+"${o.name}"#if( $velocityCount < $size ),#end
+#end
+]
+#end
+
+#macro( violationWithMap $name $map )
+#set( $size = $map.keySet().size() )
+"${name}": [
+#foreach( $o in $map.keySet() )
+"${o.name}: $map.get( $o )"#if( $velocityCount < $size ),#end
+#end
+]
+#end
+
+#macro( violationWithMapList $name $map )
+#set( $mapSize = $map.keySet().size() )
+"${name}": [
+#foreach( $o in $map.keySet() )
+#set( $listSize = $map.get( $o ).size() )
+"${o.name}:#foreach( $p in $map.get( $o ) ) ${p.name}#if( $velocityCount < $listSize ), #end
+#end "#if( $velocityCount < $mapSize ),#end
+#end
+]
+#end
+{
+    #violation( "dataElementsWithoutDataSet" $dataElementsWithoutDataSet ),
+    #violation( "dataElementsWithoutGroups" $dataElementsWithoutGroups ),    
+    #violationWithMapList( "dataElementsAssignedToDataSetsWithDifferentPeriodTypes" $dataElementsAssignedToDataSetsWithDifferentPeriodTypes ),    
+    #violation( "dataSetsNotAssignedToOrganisationUnits" $dataSetsNotAssignedToOrganisationUnits ),
+    #violation( "indicatorsWithIdenticalFormulas" $indicatorsWithIdenticalFormulas ),
+    #violation( "indicatorsWithoutGroups" $indicatorsWithoutGroups ),    
+    #violationWithMap( "invalidIndicatorNumerators" $invalidIndicatorNumerators ),
+    #violationWithMap( "invalidIndicatorDenominators" $invalidIndicatorDenominators ),        
+    #violation( "organisationUnitsWithCyclicReferences" $organisationUnitsWithCyclicReferences ),
+    #violation( "orphanedOrganisationUnits" $orphanedOrganisationUnits ),
+    #violation( "organisationUnitsWithoutGroups" $organisationUnitsWithoutGroups ),
+    #violation( "organisationUnitsViolatingCompulsoryGroupSets" $organisationUnitsViolatingCompulsoryGroupSets ),
+    #violation( "organisationUnitsViolatingExclusiveGroupSets" $organisationUnitsViolatingExclusiveGroupSets ),
+    #violation( "organisationUnitGroupsWithoutGroupSets" $organisationUnitGroupsWithoutGroupSets ),
+    #violation( "validationRulesWithoutGroups" $validationRulesWithoutGroups ),    
+    #violationWithMap( "invalidValidationRuleLeftSideExpressions" $invalidValidationRuleLeftSideExpressions ),
+    #violationWithMap( "invalidValidationRuleRightSideExpressions" $invalidValidationRuleRightSideExpressions )
+}
\ No newline at end of file