=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java 2009-11-07 13:03:26 +0000 @@ -221,6 +221,13 @@ * @return all DataElements with the given category combo. */ Collection getDataElementByCategoryCombo( DataElementCategoryCombo categoryCombo ); + + /** + * Returns all DataElements which are associated with one or more DataElementGroupSets. + * + * @return all DataElements which are associated with one or more DataElementGroupSets. + */ + Collection getDataElementsWithGroupSets(); // ------------------------------------------------------------------------- // Calculated Data Elements === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementStore.java 2009-11-07 13:03:26 +0000 @@ -179,6 +179,13 @@ * @return all DataElements with the given category combo. */ Collection getDataElementByCategoryCombo( DataElementCategoryCombo categoryCombo ); + + /** + * Returns all DataElements which are associated with one or more DataElementGroupSets. + * + * @return all DataElements which are associated with one or more DataElementGroupSets. + */ + Collection getDataElementsWithGroupSets(); // ------------------------------------------------------------------------- // Calculated Data Elements === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java 2009-11-01 20:57:16 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorService.java 2009-11-07 13:03:26 +0000 @@ -62,6 +62,8 @@ Indicator getIndicatorByAlternativeName( String alternativeName ); Indicator getIndicatorByCode( String code ); + + Collection getIndicatorsWithGroupSets(); // ------------------------------------------------------------------------- // IndicatorType === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java 2009-10-27 17:41:53 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/indicator/IndicatorStore.java 2009-11-07 13:03:26 +0000 @@ -56,4 +56,6 @@ Indicator getIndicatorByAlternativeName( String alternativeName ); Indicator getIndicatorByCode( String code ); + + Collection getIndicatorsWithGroupSets(); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java 2009-11-07 13:03:26 +0000 @@ -259,6 +259,11 @@ return dataElementStore.getDataElementByCategoryCombo( categoryCombo ); } + public Collection getDataElementsWithGroupSets() + { + return dataElementStore.getDataElementsWithGroupSets(); + } + // ------------------------------------------------------------------------- // CalculatedDataElement // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/hibernate/HibernateDataElementStore.java 2009-11-07 13:03:26 +0000 @@ -32,6 +32,7 @@ import java.util.Set; import org.hibernate.Criteria; +import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; @@ -227,6 +228,16 @@ return criteria.list(); } + @SuppressWarnings( "unchecked" ) + public Collection getDataElementsWithGroupSets() + { + final String sql = "from DataElement d where d.groupSets.size > 0"; + + Query query = sessionFactory.getCurrentSession().createQuery( sql ); + + return query.list(); + } + // ------------------------------------------------------------------------- // CalculatedDataElement // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java 2009-11-03 11:04:45 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/DefaultIndicatorService.java 2009-11-07 13:03:26 +0000 @@ -172,6 +172,11 @@ return indicatorStore.getIndicatorByCode( code ); } + public Collection getIndicatorsWithGroupSets() + { + return indicatorStore.getIndicatorsWithGroupSets(); + } + // ------------------------------------------------------------------------- // IndicatorType // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java 2009-10-27 17:41:53 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/hibernate/HibernateIndicatorStore.java 2009-11-07 13:03:26 +0000 @@ -34,6 +34,7 @@ import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; +import org.hisp.dhis.hibernate.HibernateGenericStore; import org.hisp.dhis.indicator.Indicator; import org.hisp.dhis.indicator.IndicatorStore; @@ -42,7 +43,7 @@ * @version $Id: HibernateIndicatorStore.java 3287 2007-05-08 00:26:53Z larshelg $ */ public class HibernateIndicatorStore - implements IndicatorStore + extends HibernateGenericStore implements IndicatorStore { // ------------------------------------------------------------------------- // Dependencies @@ -151,4 +152,14 @@ return (Indicator) query.uniqueResult(); } + + @SuppressWarnings( "unchecked" ) + public Collection getIndicatorsWithGroupSets() + { + final String sql = "from Indicator d where d.groupSets.size > 0"; + + Query query = sessionFactory.getCurrentSession().createQuery( sql ); + + return query.list(); + } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml 2009-11-06 10:21:54 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/indicator/hibernate/Indicator.hbm.xml 2009-11-07 13:03:26 +0000 @@ -65,5 +65,12 @@ + + + + + + === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnitGroup.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnitGroup.hbm.xml 2009-11-03 14:25:59 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnitGroup.hbm.xml 2009-11-07 13:03:26 +0000 @@ -9,9 +9,9 @@ - - - + + + === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/dataelement/DataElementStoreTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/dataelement/DataElementStoreTest.java 2009-11-06 10:50:01 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/dataelement/DataElementStoreTest.java 2009-11-07 13:03:26 +0000 @@ -54,7 +54,7 @@ extends DhisSpringTest { private DataElementStore dataElementStore; - + // ------------------------------------------------------------------------- // Fixture // ------------------------------------------------------------------------- @@ -64,6 +64,8 @@ throws Exception { dataElementStore = (DataElementStore) getBean( DataElementStore.ID ); + + dataElementService = (DataElementService) getBean( DataElementService.ID ); } // ------------------------------------------------------------------------- @@ -474,6 +476,33 @@ assertEquals( 2, dataElementStore.getDataElement( idA ).getAggregationLevels().size() ); assertEquals( aggregationLevels, dataElementStore.getDataElement( idA ).getAggregationLevels() ); } + + @Test + public void testGetDataElementsWithGroupSets() + { + DataElementGroupSet groupSetA = createDataElementGroupSet( 'A' ); + + dataElementService.addDataElementGroupSet( groupSetA ); + + DataElement dataElementA = createDataElement( 'A' ); + DataElement dataElementB = createDataElement( 'B' ); + DataElement dataElementC = createDataElement( 'C' ); + DataElement dataElementD = createDataElement( 'D' ); + + dataElementB.getGroupSets().add( groupSetA ); + dataElementD.getGroupSets().add( groupSetA ); + + dataElementStore.addDataElement( dataElementA ); + dataElementStore.addDataElement( dataElementB ); + dataElementStore.addDataElement( dataElementC ); + dataElementStore.addDataElement( dataElementD ); + + Collection dataElements = dataElementStore.getDataElementsWithGroupSets(); + + assertEquals( 2, dataElements.size() ); + assertTrue( dataElements.contains( dataElementB ) ); + assertTrue( dataElements.contains( dataElementD ) ); + } // ------------------------------------------------------------------------- // CalculatedDataElements === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/indicator/IndicatorStoreTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/indicator/IndicatorStoreTest.java 2009-10-27 17:41:53 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/indicator/IndicatorStoreTest.java 2009-11-07 13:03:26 +0000 @@ -63,6 +63,8 @@ indicatorStore = (IndicatorStore) getBean( IndicatorStore.ID ); indicatorTypeStore = (GenericIdentifiableObjectStore) getBean( "org.hisp.dhis.indicator.IndicatorTypeStore" ); + + indicatorService = (IndicatorService) getBean( IndicatorService.ID ); } // ------------------------------------------------------------------------- @@ -414,5 +416,37 @@ Indicator indicatorC = indicatorStore.getIndicatorByCode( "CodeC" ); assertNull( indicatorC ); + } + + @Test + public void testGetIndicatorsWithGroupSets() + throws Exception + { + IndicatorGroupSet groupSetA = createIndicatorGroupSet( 'A' ); + + indicatorService.addIndicatorGroupSet( groupSetA ); + + IndicatorType type = new IndicatorType( "IndicatorType", 100 ); + + indicatorTypeStore.save( type ); + + Indicator indicatorA = createIndicator( 'A', type ); + Indicator indicatorB = createIndicator( 'B', type ); + Indicator indicatorC = createIndicator( 'C', type ); + Indicator indicatorD = createIndicator( 'D', type ); + + indicatorB.getGroupSets().add( groupSetA ); + indicatorD.getGroupSets().add( groupSetA ); + + indicatorStore.addIndicator( indicatorA ); + indicatorStore.addIndicator( indicatorB ); + indicatorStore.addIndicator( indicatorC ); + indicatorStore.addIndicator( indicatorD ); + + Collection indicators = indicatorStore.getIndicatorsWithGroupSets(); + + assertEquals( 2, indicators.size() ); + assertTrue( indicators.contains( indicatorB ) ); + assertTrue( indicators.contains( indicatorD ) ); } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/pom.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/pom.xml 2009-11-03 14:24:13 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/pom.xml 2009-11-07 13:03:26 +0000 @@ -31,6 +31,10 @@ org.hisp.dhis + dhis-service-core + + + org.hisp.dhis dhis-web-commons