=== 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 2015-08-05 14:08:21 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2015-08-07 17:59:15 +0000 @@ -654,7 +654,7 @@ if ( dataPeriodType != null ) { - for ( NameableObject aggregatePeriod : getDimensionOrFilter( PERIOD_DIM_ID ) ) + for ( NameableObject aggregatePeriod : getDimensionOrFilterItems( PERIOD_DIM_ID ) ) { Period dataPeriod = dataPeriodType.createPeriod( ((Period) aggregatePeriod).getStartDate() ); @@ -760,6 +760,17 @@ return index != -1 ? dimensions.get( index ) : null; } + + /** + * Retrieves the dimension or filter with the given dimension identifier. + * Returns null if the dimension or filter is not present. + */ + public DimensionalObject getDimensionOrFilter( String dimension ) + { + DimensionalObject dim = getDimension( dimension ); + + return dim != null ? dim : getFilter( dimension ); + } /** * Sets the options for the given dimension. @@ -1490,7 +1501,7 @@ * Retrieves the options for the the dimension or filter with the given * identifier. Returns an empty list if the dimension or filter is not present. */ - public List getDimensionOrFilter( String key ) + public List getDimensionOrFilterItems( String key ) { List dimensionOptions = getDimensionOptions( key ); @@ -1555,7 +1566,7 @@ */ public boolean hasDimensionOrFilterWithItems( String key ) { - return !getDimensionOrFilter( key ).isEmpty(); + return !getDimensionOrFilterItems( key ).isEmpty(); } /** @@ -1600,7 +1611,7 @@ { return ImmutableList.copyOf( ListUtils.union( getDataSets(), getFilterDataSets() ) ); } - + public List getAllProgramAttributes() { return ImmutableList.copyOf( ListUtils.union( getProgramAttributes(), getFilterProgramAttributes() ) ); @@ -1611,9 +1622,14 @@ return ImmutableList.copyOf( ListUtils.union( getProgramDataElements(), getFilterProgramDataElements() ) ); } + public List getAllProgramDataElementsAndAttributes() + { + return ListUtils.union( getAllProgramAttributes(), getAllProgramDataElements() ); + } + public DataQueryParams retainDataDimension( DataDimensionItemType itemType ) { - DimensionalObject dimension = getDimension( DATA_X_DIM_ID ); + DimensionalObject dimension = getDimensionOrFilter( DATA_X_DIM_ID ); List items = DimensionalObjectUtils.getByDataDimensionType( itemType, dimension.getItems() ); @@ -1625,7 +1641,7 @@ public DataQueryParams retainDataDimensions( DataDimensionItemType... itemTypes ) { - DimensionalObject dimension = getDimension( DATA_X_DIM_ID ); + DimensionalObject dimension = getDimensionOrFilter( DATA_X_DIM_ID ); List items = new ArrayList<>(); @@ -1704,11 +1720,6 @@ return ImmutableList.copyOf( DimensionalObjectUtils.getByDataDimensionType( DataDimensionItemType.PROGRAM_ATTRIBUTE, getDimensionOptions( DATA_X_DIM_ID ) ) ); } - public List getProgramDataElementsAndAttributes() - { - return ListUtils.union( getProgramDataElements(), getProgramAttributes() ); - } - public void setProgramAttributes( List programAttributes ) { setDataDimensionOptions( DataDimensionItemType.PROGRAM_ATTRIBUTE, programAttributes ); @@ -1789,7 +1800,7 @@ public boolean isCategoryOptionCombosEnabled() { - return !getDimensionOrFilter( CATEGORYOPTIONCOMBO_DIM_ID ).isEmpty(); + return !getDimensionOrFilterItems( CATEGORYOPTIONCOMBO_DIM_ID ).isEmpty(); } // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-06 13:12:50 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2015-08-07 17:59:15 +0000 @@ -366,7 +366,7 @@ */ private void addDataElementValues( DataQueryParams params, Grid grid ) { - if ( !params.getDataElements().isEmpty() && !params.isSkipData() ) + if ( !params.getAllDataElements().isEmpty() && !params.isSkipData() ) { DataQueryParams dataSourceParams = params.instance(); dataSourceParams.retainDataDimension( DataDimensionItemType.AGGREGATE_DATA_ELEMENT ); @@ -584,7 +584,7 @@ */ private void addProgramDataElementAttributeValues( DataQueryParams params, Grid grid ) { - if ( !params.getProgramDataElementsAndAttributes().isEmpty() && !params.isSkipData() ) + if ( !params.getAllProgramDataElementsAndAttributes().isEmpty() && !params.isSkipData() ) { DataQueryParams dataSourceParams = params.instance(); dataSourceParams.retainDataDimensions( DataDimensionItemType.PROGRAM_DATA_ELEMENT, DataDimensionItemType.PROGRAM_ATTRIBUTE ); @@ -651,8 +651,8 @@ Calendar calendar = PeriodType.getCalendar(); List periodUids = calendar.isIso8601() ? - getUids( params.getDimensionOrFilter( PERIOD_DIM_ID ) ) : - getLocalPeriodIdentifiers( params.getDimensionOrFilter( PERIOD_DIM_ID ), calendar ); + getUids( params.getDimensionOrFilterItems( PERIOD_DIM_ID ) ) : + getLocalPeriodIdentifiers( params.getDimensionOrFilterItems( PERIOD_DIM_ID ), calendar ); metaData.put( PERIOD_DIM_ID, periodUids ); metaData.put( CATEGORYOPTIONCOMBO_DIM_ID, cocNameMap.keySet() ); @@ -671,7 +671,7 @@ User user = currentUserService.getCurrentUser(); - List organisationUnits = asTypedList( params.getDimensionOrFilter( ORGUNIT_DIM_ID ), OrganisationUnit.class ); + List organisationUnits = asTypedList( params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ), OrganisationUnit.class ); Collection roots = user != null ? user.getOrganisationUnits() : null; if ( params.isHierarchyMeta() ) === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java 2015-08-02 14:59:59 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventQueryParams.java 2015-08-07 17:59:15 +0000 @@ -195,7 +195,7 @@ */ public void replacePeriodsWithStartEndDates() { - List periods = NameableObjectUtils.asTypedList( getDimensionOrFilter( PERIOD_DIM_ID ), Period.class ); + List periods = NameableObjectUtils.asTypedList( getDimensionOrFilterItems( PERIOD_DIM_ID ), Period.class ); for ( Period period : periods ) { @@ -345,7 +345,7 @@ { Set children = new HashSet<>(); - for ( NameableObject object : getDimensionOrFilter( DimensionalObject.ORGUNIT_DIM_ID ) ) + for ( NameableObject object : getDimensionOrFilterItems( DimensionalObject.ORGUNIT_DIM_ID ) ) { OrganisationUnit unit = (OrganisationUnit) object; children.addAll( unit.getChildren() ); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2015-08-04 11:09:17 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2015-08-07 17:59:15 +0000 @@ -253,12 +253,12 @@ Map uidNameMap = getUidNameMap( params ); metaData.put( NAMES_META_KEY, uidNameMap ); - metaData.put( PERIOD_DIM_ID, getUids( params.getDimensionOrFilter( PERIOD_DIM_ID ) ) ); - metaData.put( ORGUNIT_DIM_ID, getUids( params.getDimensionOrFilter( ORGUNIT_DIM_ID ) ) ); + metaData.put( PERIOD_DIM_ID, getUids( params.getDimensionOrFilterItems( PERIOD_DIM_ID ) ) ); + metaData.put( ORGUNIT_DIM_ID, getUids( params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ) ) ); User user = currentUserService.getCurrentUser(); - List organisationUnits = asTypedList( params.getDimensionOrFilter( ORGUNIT_DIM_ID ), OrganisationUnit.class ); + List organisationUnits = asTypedList( params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ), OrganisationUnit.class ); Collection roots = user != null ? user.getOrganisationUnits() : null; if ( params.isHierarchyMeta() ) @@ -359,7 +359,7 @@ if ( params.isHierarchyMeta() ) { metaData.put( OU_HIERARCHY_KEY, getParentGraphMap( asTypedList( - params.getDimensionOrFilter( ORGUNIT_DIM_ID ), OrganisationUnit.class ), roots ) ); + params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ), OrganisationUnit.class ), roots ) ); } if ( params.isPaging() ) === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2015-06-18 14:35:18 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2015-08-07 17:59:15 +0000 @@ -196,7 +196,7 @@ if ( params.hasDimensionOrFilter( DimensionalObject.ORGUNIT_DIM_ID ) ) { - for ( NameableObject object : params.getDimensionOrFilter( DimensionalObject.ORGUNIT_DIM_ID ) ) + for ( NameableObject object : params.getDimensionOrFilterItems( DimensionalObject.ORGUNIT_DIM_ID ) ) { OrganisationUnit unit = (OrganisationUnit) object; unit.setLevel( organisationUnitService.getLevelOfOrganisationUnit( unit.getId() ) ); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2015-07-19 15:50:46 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2015-08-07 17:59:15 +0000 @@ -436,7 +436,7 @@ } else // Periods { - sql += "where " + params.getPeriodType() + " in (" + getQuotedCommaDelimitedString( getUids( params.getDimensionOrFilter( PERIOD_DIM_ID ) ) ) + ") "; + sql += "where " + params.getPeriodType() + " in (" + getQuotedCommaDelimitedString( getUids( params.getDimensionOrFilterItems( PERIOD_DIM_ID ) ) ) + ") "; } // --------------------------------------------------------------------- @@ -445,7 +445,7 @@ if ( params.isOrganisationUnitMode( DimensionalObject.OU_MODE_SELECTED ) ) { - sql += "and ou in (" + getQuotedCommaDelimitedString( getUids( params.getDimensionOrFilter( ORGUNIT_DIM_ID ) ) ) + ") "; + sql += "and ou in (" + getQuotedCommaDelimitedString( getUids( params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ) ) ) + ") "; } else if ( params.isOrganisationUnitMode( DimensionalObject.OU_MODE_CHILDREN ) ) { @@ -455,7 +455,7 @@ { sql += "and ("; - for ( NameableObject object : params.getDimensionOrFilter( ORGUNIT_DIM_ID ) ) + for ( NameableObject object : params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ) ) { OrganisationUnit unit = (OrganisationUnit) object; sql += "uidlevel" + unit.getLevel() + " = '" + unit.getUid() + "' or "; === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/security/DefaultAnalyticsSecurityManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/security/DefaultAnalyticsSecurityManager.java 2015-06-14 17:51:03 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/security/DefaultAnalyticsSecurityManager.java 2015-08-07 17:59:15 +0000 @@ -89,7 +89,7 @@ User user = currentUserService.getCurrentUser(); - List queryOrgUnits = params.getDimensionOrFilter( DimensionalObject.ORGUNIT_DIM_ID ); + List queryOrgUnits = params.getDimensionOrFilterItems( DimensionalObject.ORGUNIT_DIM_ID ); if ( queryOrgUnits.isEmpty() || user == null || !user.hasDataViewOrganisationUnit() ) {