dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #24646
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 12119: Refactored MapView, now extending BaseAnalyticalObject
------------------------------------------------------------
revno: 12119
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2013-09-17 18:22:09 +0200
message:
Refactored MapView, now extending BaseAnalyticalObject
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/NameableObjectUtils.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapView.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java
dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml
dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/mapping/hibernate/MapView.hbm.xml
dhis-2/dhis-services/dhis-service-mapgeneration/src/main/java/org/hisp/dhis/mapgeneration/GeoToolsMapGenerationService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml
dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/mapping/MapController.java
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/green/green.css
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/india/india.css
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/light_blue/light_blue.css
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/vietnam/vietnam.css
dhis-2/dhis-web/dhis-web-dashboard-integration/pom.xml
--
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
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java 2013-09-16 17:04:01 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java 2013-09-17 16:22:09 +0000
@@ -214,8 +214,9 @@
}
/**
- * Assembles a DimensionalObject. Collapses indicators, data elements, data
- * element operands and data sets into the dx dimension.
+ * Assembles a DimensionalObject based on the persisted properties of this
+ * AnalyticalObject. Collapses indicators, data elements, data element
+ * operands and data sets into the dx dimension.
*
* Collapses fixed and relative periods into the pe dimension. Collapses
* fixed and user organisation units into the ou dimension.
@@ -363,6 +364,8 @@
* fixed and user organisation units into the ou dimension, where user
* organisation units properties are represented by enums (e.g. USER_ORG_UNIT).
*
+ * This method is useful when serializing the AnalyticalObject.
+ *
* @param dimension the dimension identifier.
* @return a list of DimensionalObjects.
*/
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/NameableObjectUtils.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/NameableObjectUtils.java 2013-08-23 15:56:19 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/NameableObjectUtils.java 2013-09-17 16:22:09 +0000
@@ -88,4 +88,18 @@
return list;
}
+
+ /**
+ * Returns a list typed with the desired erasure based on the given collection.
+ * This operation implies an unchecked cast and it is the responsibility of
+ * the caller to make sure the cast is valid.
+ *
+ * @param collection the collection.
+ * @param the class type.
+ * @return a list.
+ */
+ public static <T extends NameableObject> List<T> asTypedList( Collection<NameableObject> collection, Class<T> clazz )
+ {
+ return asTypedList( collection );
+ }
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapView.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapView.java 2013-08-23 15:56:19 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapView.java 2013-09-17 16:22:09 +0000
@@ -28,41 +28,40 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import static org.hisp.dhis.common.DimensionalObject.ORGUNIT_DIM_ID;
+
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonView;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
+import org.hisp.dhis.common.BaseAnalyticalObject;
import org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.common.DimensionalObject;
import org.hisp.dhis.common.DxfNamespaces;
import org.hisp.dhis.common.IdentifiableObject;
-import org.hisp.dhis.common.adapter.JacksonPeriodDeserializer;
-import org.hisp.dhis.common.adapter.JacksonPeriodSerializer;
-import org.hisp.dhis.common.adapter.JacksonPeriodTypeDeserializer;
-import org.hisp.dhis.common.adapter.JacksonPeriodTypeSerializer;
+import org.hisp.dhis.common.NameableObjectUtils;
import org.hisp.dhis.common.view.DetailedView;
import org.hisp.dhis.common.view.ExportView;
-import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementGroup;
-import org.hisp.dhis.dataelement.DataElementOperand;
-import org.hisp.dhis.indicator.Indicator;
-import org.hisp.dhis.indicator.IndicatorGroup;
+import org.hisp.dhis.i18n.I18nFormat;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.organisationunit.OrganisationUnitGroupSet;
-import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
-import org.hisp.dhis.period.Period;
-import org.hisp.dhis.period.PeriodType;
+import org.hisp.dhis.user.User;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonView;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
/**
+ * For analytical data, organisation units and indicators/data elements are
+ * dimensions, and period is filter.
+ *
* @author Jan Henrik Overland
*/
@JacksonXmlRootElement( localName = "mapView", namespace = DxfNamespaces.DXF_2_0)
public class MapView
- extends BaseIdentifiableObject
+ extends BaseAnalyticalObject
{
public static final String LAYER_BOUNDARY = "boundary";
public static final String LAYER_THEMATIC1 = "thematic1";
@@ -82,22 +81,6 @@
private String valueType;
- private IndicatorGroup indicatorGroup;
-
- private Indicator indicator;
-
- private DataElementGroup dataElementGroup;
-
- private DataElement dataElement;
-
- private DataElementOperand dataElementOperand;
-
- private Period period;
-
- private OrganisationUnit parentOrganisationUnit;
-
- private OrganisationUnitLevel organisationUnitLevel;
-
private String legendType;
private Integer method;
@@ -120,43 +103,54 @@
private Integer areaRadius;
+ // -------------------------------------------------------------------------
+ // Transient properties
+ // -------------------------------------------------------------------------
+
+ private transient I18nFormat format;
+
private transient String parentGraph;
private transient int parentLevel;
private transient List<OrganisationUnit> organisationUnitsAtLevel = new ArrayList<OrganisationUnit>();
+ private transient List<OrganisationUnit> organisationUnitsInGroups = new ArrayList<OrganisationUnit>();
+
public MapView()
{
}
- public MapView( String layer, String name, String valueType, IndicatorGroup indicatorGroup, Indicator indicator,
- DataElementGroup dataElementGroup, DataElement dataElement,
- Period period, OrganisationUnit parentOrganisationUnit, OrganisationUnitLevel organisationUnitLevel,
- String legendType, Integer method, Integer classes, String colorLow, String colorHigh,
- MapLegendSet legendSet, Integer radiusLow, Integer radiusHigh, Double opacity )
- {
- this.layer = layer;
- this.name = name;
- this.valueType = valueType;
- this.indicatorGroup = indicatorGroup;
- this.indicator = indicator;
- this.dataElementGroup = dataElementGroup;
- this.dataElement = dataElement;
- this.period = period;
- this.parentOrganisationUnit = parentOrganisationUnit;
- this.organisationUnitLevel = organisationUnitLevel;
- this.legendType = legendType;
- this.method = method;
- this.classes = classes;
- this.colorLow = colorLow;
- this.colorHigh = colorHigh;
- this.legendSet = legendSet;
- this.radiusLow = radiusLow;
- this.radiusHigh = radiusHigh;
- this.opacity = opacity;
- }
-
+ // -------------------------------------------------------------------------
+ // Analytical
+ // -------------------------------------------------------------------------
+
+ @Override
+ public void init( User user, Date date, OrganisationUnit organisationUnit,
+ List<OrganisationUnit> organisationUnitsAtLevel, List<OrganisationUnit> organisationUnitsInGroups, I18nFormat format )
+ {
+ this.user = user;
+ this.relativePeriodDate = date;
+ this.relativeOrganisationUnit = organisationUnit;
+ this.organisationUnitsAtLevel = organisationUnitsAtLevel;
+ this.organisationUnitsInGroups = organisationUnitsInGroups;
+ }
+
+ @Override
+ public void populateAnalyticalProperties()
+ {
+ columns.addAll( getDimensionalObjectList( DimensionalObject.ORGUNIT_DIM_ID ) );
+ columns.addAll( getDimensionalObjectList( DimensionalObject.DATA_X_DIM_ID ) );
+ filters.addAll( getDimensionalObjectList( DimensionalObject.PERIOD_DIM_ID ) );
+ }
+
+ public List<OrganisationUnit> getAllOrganisationUnits()
+ {
+ DimensionalObject object = getDimensionalObject( ORGUNIT_DIM_ID, relativePeriodDate, user, true, organisationUnitsAtLevel, organisationUnitsInGroups, format );
+
+ return object != null ? NameableObjectUtils.asTypedList( object.getItems(), OrganisationUnit.class ) : null;
+ }
+
// -------------------------------------------------------------------------
// Getters and setters
// -------------------------------------------------------------------------
@@ -170,7 +164,7 @@
@Override
public String getName()
{
- return indicator != null ? indicator.getName() : dataElement != null ? dataElement.getName() : uid;
+ return indicators != null ? indicators.get( 0 ).getName() : dataElements != null ? dataElements.get( 0 ).getName() : uid;
}
@JsonProperty
@@ -200,133 +194,6 @@
}
@JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public IndicatorGroup getIndicatorGroup()
- {
- return indicatorGroup;
- }
-
- public void setIndicatorGroup( IndicatorGroup indicatorGroup )
- {
- this.indicatorGroup = indicatorGroup;
- }
-
- @JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public Indicator getIndicator()
- {
- return indicator;
- }
-
- public void setIndicator( Indicator indicator )
- {
- this.indicator = indicator;
- }
-
- @JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public DataElementGroup getDataElementGroup()
- {
- return dataElementGroup;
- }
-
- public void setDataElementGroup( DataElementGroup dataElementGroup )
- {
- this.dataElementGroup = dataElementGroup;
- }
-
- @JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public DataElement getDataElement()
- {
- return dataElement;
- }
-
- public void setDataElement( DataElement dataElement )
- {
- this.dataElement = dataElement;
- }
-
- @JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public DataElementOperand getDataElementOperand()
- {
- return dataElementOperand;
- }
-
- public void setDataElementOperand( DataElementOperand dataElementOperand )
- {
- this.dataElementOperand = dataElementOperand;
- }
-
- @JsonProperty
- @JsonSerialize( using = JacksonPeriodTypeSerializer.class )
- @JsonDeserialize( using = JacksonPeriodTypeDeserializer.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public PeriodType getPeriodType()
- {
- return period != null ? period.getPeriodType() : null;
- }
-
- public void setPeriodType( PeriodType periodType )
- {
- // ignore
- }
-
- @JsonProperty
- @JsonSerialize( using = JacksonPeriodSerializer.class )
- @JsonDeserialize( using = JacksonPeriodDeserializer.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public Period getPeriod()
- {
- return period;
- }
-
- public void setPeriod( Period period )
- {
- this.period = period;
- }
-
- @JsonProperty
- @JsonSerialize( as = BaseIdentifiableObject.class )
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public OrganisationUnit getParentOrganisationUnit()
- {
- return parentOrganisationUnit;
- }
-
- public void setParentOrganisationUnit( OrganisationUnit parentOrganisationUnit )
- {
- this.parentOrganisationUnit = parentOrganisationUnit;
- }
-
- @JsonProperty
- @JsonView( { DetailedView.class, ExportView.class } )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
- public OrganisationUnitLevel getOrganisationUnitLevel()
- {
- return organisationUnitLevel;
- }
-
- public void setOrganisationUnitLevel( OrganisationUnitLevel organisationUnitLevel )
- {
- this.organisationUnitLevel = organisationUnitLevel;
- }
-
- @JsonProperty
@JsonView( { DetailedView.class, ExportView.class } )
@JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0)
public String getLegendType()
@@ -497,23 +364,6 @@
this.parentLevel = parentLevel;
}
- public List<OrganisationUnit> getOrganisationUnitsAtLevel()
- {
- return organisationUnitsAtLevel;
- }
-
- public void setOrganisationUnitsAtLevel( List<OrganisationUnit> organisationUnitsAtLevel )
- {
- this.organisationUnitsAtLevel = organisationUnitsAtLevel;
- }
-
- @Override
- public String toString()
- {
- return "[Indicator: " + indicator + ", org unit: " +
- parentOrganisationUnit + ", period: " + period + ", value type: " + valueType + "]";
- }
-
@Override
public void mergeWith( IdentifiableObject other )
{
@@ -525,13 +375,6 @@
layer = mapView.getLayer() == null ? layer : mapView.getLayer();
valueType = mapView.getValueType() == null ? valueType : mapView.getValueType();
- indicatorGroup = mapView.getIndicatorGroup() == null ? indicatorGroup : mapView.getIndicatorGroup();
- indicator = mapView.getIndicator() == null ? indicator : mapView.getIndicator();
- dataElementGroup = mapView.getDataElementGroup() == null ? dataElementGroup : mapView.getDataElementGroup();
- dataElement = mapView.getDataElement() == null ? dataElement : mapView.getDataElement();
- period = mapView.getPeriod() == null ? period : mapView.getPeriod();
- parentOrganisationUnit = mapView.getParentOrganisationUnit() == null ? parentOrganisationUnit : mapView.getParentOrganisationUnit();
- organisationUnitLevel = mapView.getOrganisationUnitLevel() == null ? organisationUnitLevel : mapView.getOrganisationUnitLevel();
legendType = mapView.getLegendType() == null ? legendType : mapView.getLegendType();
method = mapView.getMethod() == null ? method : mapView.getMethod();
classes = mapView.getClasses() == null ? classes : mapView.getClasses();
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2013-09-13 11:22:35 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2013-09-17 16:22:09 +0000
@@ -38,7 +38,6 @@
import org.hisp.dhis.indicator.Indicator;
import org.hisp.dhis.indicator.IndicatorService;
import org.hisp.dhis.organisationunit.OrganisationUnit;
-import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
import org.hisp.dhis.organisationunit.OrganisationUnitService;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.period.PeriodService;
@@ -316,8 +315,10 @@
{
if ( mapView != null )
{
- mapView.getParentOrganisationUnit().setLevel(
- organisationUnitService.getLevelOfOrganisationUnit( mapView.getParentOrganisationUnit().getId() ) );
+ for ( OrganisationUnit unit : mapView.getOrganisationUnits() )
+ {
+ unit.setLevel( organisationUnitService.getLevelOfOrganisationUnit( unit.getId() ) );
+ }
}
}
@@ -336,10 +337,10 @@
Indicator indicator = indicatorService.getIndicator( indicatorUid );
OrganisationUnit unit = organisationUnitService.getOrganisationUnit( organisationUnitUid );
- mapView.setIndicator( indicator );
- mapView.setPeriod( period );
- mapView.setParentOrganisationUnit( unit );
- mapView.setOrganisationUnitLevel( new OrganisationUnitLevel( level, "" ) );
+ mapView.getIndicators().add( indicator );
+ mapView.getPeriods().add( period );
+ mapView.getOrganisationUnits().add( unit );
+ mapView.getOrganisationUnitLevels().add( level );
mapView.setName( indicator.getName() );
mapView.setValueType( MapView.VALUE_TYPE_INDICATOR );
@@ -356,10 +357,9 @@
{
//TODO poor performance, fix
- if ( mapView.getParentOrganisationUnit() != null )
+ for ( OrganisationUnit unit : mapView.getOrganisationUnits() )
{
- mapView.getParentOrganisationUnit().setLevel(
- organisationUnitService.getLevelOfOrganisationUnit( mapView.getParentOrganisationUnit().getId() ) );
+ unit.setLevel( organisationUnitService.getLevelOfOrganisationUnit( unit.getId() ) );
}
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java 2013-08-23 16:05:01 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java 2013-09-17 16:22:09 +0000
@@ -31,11 +31,7 @@
import java.util.Iterator;
import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementGroup;
-import org.hisp.dhis.dataelement.DataElementOperand;
-import org.hisp.dhis.dataelement.DataElementOperandService;
import org.hisp.dhis.indicator.Indicator;
-import org.hisp.dhis.indicator.IndicatorGroup;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.system.deletion.DeletionHandler;
@@ -58,13 +54,6 @@
this.mappingService = mappingService;
}
- private DataElementOperandService operandService;
-
- public void setOperandService( DataElementOperandService operandService )
- {
- this.operandService = operandService;
- }
-
// -------------------------------------------------------------------------
// DeletionHandler implementation
// -------------------------------------------------------------------------
@@ -76,23 +65,11 @@
}
@Override
- public void deleteMapView( MapView mapView )
- {
- DataElementOperand operand = mapView.getDataElementOperand();
-
- if ( operand != null )
- {
- mapView.setDataElementOperand( null );
- operandService.deleteDataElementOperand( operand );
- }
- }
-
- @Override
public String allowDeletePeriod( Period period )
{
for ( MapView mapView : mappingService.getAllMapViews() )
{
- if ( mapView.getPeriod().equals( period ) )
+ if ( mapView.getPeriods().contains( period ) )
{
return mapView.getName();
}
@@ -100,24 +77,7 @@
return null;
}
-
- @Override
- public void deleteIndicatorGroup( IndicatorGroup indicatorGroup )
- {
- Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
- while ( mapViews.hasNext() )
- {
- MapView mapView = mapViews.next();
-
- if ( mapView.getIndicatorGroup() != null && mapView.getIndicatorGroup().equals( indicatorGroup ) )
- {
- mapViews.remove();
- mappingService.deleteMapView( mapView );
- }
- }
- }
-
@Override
public void deleteIndicator( Indicator indicator )
{
@@ -127,24 +87,7 @@
{
MapView mapView = mapViews.next();
- if ( mapView.getIndicator() != null && mapView.getIndicator().equals( indicator ) )
- {
- mapViews.remove();
- mappingService.deleteMapView( mapView );
- }
- }
- }
-
- @Override
- public void deleteDataElementGroup( DataElementGroup dataElementGroup )
- {
- Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
-
- while ( mapViews.hasNext() )
- {
- MapView mapView = mapViews.next();
-
- if ( mapView.getDataElementGroup() != null && mapView.getDataElementGroup().equals( dataElementGroup ) )
+ if ( mapView.getIndicators() != null && mapView.getIndicators().contains( indicator ) )
{
mapViews.remove();
mappingService.deleteMapView( mapView );
@@ -161,7 +104,7 @@
{
MapView mapView = mapViews.next();
- if ( mapView.getDataElement() != null && mapView.getDataElement().equals( dataElement ) )
+ if ( mapView.getDataElements() != null && mapView.getDataElements().contains( dataElement ) )
{
mapViews.remove();
mappingService.deleteMapView( mapView );
@@ -178,7 +121,7 @@
{
MapView mapView = mapViews.next();
- if ( mapView.getParentOrganisationUnit() != null && mapView.getParentOrganisationUnit().equals( organisationUnit ) )
+ if ( mapView.getOrganisationUnits() != null && mapView.getOrganisationUnits().contains( organisationUnit ) )
{
mapViews.remove();
mappingService.deleteMapView( mapView );
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2013-09-14 23:13:35 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2013-09-17 16:22:09 +0000
@@ -635,9 +635,41 @@
executeSql( "delete from usersetting where name = 'dashboardConfig' or name = 'dashboardConfiguration'" );
executeSql( "ALTER TABLE interpretation ALTER COLUMN userid DROP NOT NULL" );
+ upgradeMapViewsToAnalyticalObject();
+
log.info( "Tables updated" );
}
+ private void upgradeMapViewsToAnalyticalObject()
+ {
+ executeSql( "insert into mapview_dataelements ( mapviewid, sort_order, dataelementid ) select mapviewid, 0, dataelementid from mapview where dataelementid is not null" );
+ executeSql( "alter table mapview drop column dataelementid" );
+
+ executeSql( "insert into mapview_dataelementoperands ( mapviewid, sort_order, dataelementoperandid ) select mapviewid, 0, dataelementoperandid from mapview where dataelementoperandid is not null" );
+ executeSql( "alter table mapview drop column dataelementoperandid" );
+
+ executeSql( "insert into mapview_indicators ( mapviewid, sort_order, indicatorid ) select mapviewid, 0, indicatorid from mapview where indicatorid is not null" );
+ executeSql( "alter table mapview drop column indicatorid" );
+
+ executeSql( "insert into mapview_organisationunits ( mapviewid, sort_order, organisationunitid ) select mapviewid, 0, parentorganisationunitid from mapview where parentorganisationunitid is not null" );
+ executeSql( "alter table mapview drop column parentorganisationunitid" );
+
+ executeSql( "insert into mapview_periods ( mapviewid, sort_order, periodid ) select mapviewid, 0, periodid from mapview where periodid is not null" );
+ executeSql( "alter table mapview drop column periodid" );
+
+ executeSql( "insert into mapview_orgunitlevels ( mapviewid, sort_order, orgunitlevel ) select m.mapviewid, 0, o.level " +
+ "from mapview m join orgunitlevel o on (m.organisationunitlevelid=o.orgunitlevelid) where m.organisationunitlevelid is not null" );
+
+ System.out.println();
+ System.out.println("insert into mapview_orgunitlevels ( mapviewid, sort_order, orgunitlevel ) select m.mapviewid, 0, o.level " +
+ "from mapview m join orgunitlevel o on (m.organisationunitlevelid=o.orgunitlevelid) where m.organisationunitlevelid is not null");
+
+ executeSql( "alter table mapview drop column organisationunitlevelid" );
+
+ executeSql( "alter table mapview drop column dataelementgroupid" );
+ executeSql( "alter table mapview drop column indicatorgroupid" );
+ }
+
private void upgradeChartRelativePeriods()
{
BatchHandler<RelativePeriods> batchHandler = batchHandlerFactory.createBatchHandler( RelativePeriodsBatchHandler.class ).init();
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2013-09-13 13:00:37 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2013-09-17 16:22:09 +0000
@@ -1057,7 +1057,6 @@
<bean id="org.hisp.dhis.mapping.MapViewDeletionHandler" class="org.hisp.dhis.mapping.MapViewDeletionHandler">
<property name="mappingService" ref="org.hisp.dhis.mapping.MappingService" />
- <property name="operandService" ref="org.hisp.dhis.dataelement.DataElementOperandService" />
</bean>
<bean id="org.hisp.dhis.mapping.MapDeletionHandler" class="org.hisp.dhis.mapping.MapDeletionHandler">
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/mapping/hibernate/MapView.hbm.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/mapping/hibernate/MapView.hbm.xml 2013-09-09 18:40:14 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/mapping/hibernate/MapView.hbm.xml 2013-09-17 16:22:09 +0000
@@ -22,29 +22,52 @@
<property name="valueType" />
- <many-to-one name="indicatorGroup" class="org.hisp.dhis.indicator.IndicatorGroup" column="indicatorgroupid"
- foreign-key="fk_mapview_indicatorgroupid" />
-
- <many-to-one name="indicator" class="org.hisp.dhis.indicator.Indicator" column="indicatorid"
- foreign-key="fk_mapview_indicatorid" />
-
- <many-to-one name="dataElementGroup" class="org.hisp.dhis.dataelement.DataElementGroup" column="dataelementgroupid"
- foreign-key="fk_mapview_dataelementgroupid" />
-
- <many-to-one name="dataElement" class="org.hisp.dhis.dataelement.DataElement" column="dataelementid"
- foreign-key="fk_mapview_dataelementid" />
-
- <many-to-one name="dataElementOperand" class="org.hisp.dhis.dataelement.DataElementOperand" column="dataelementoperandid"
- foreign-key="fk_mapview_dataelementoperandid" cascade="all" />
-
- <many-to-one name="period" class="org.hisp.dhis.period.Period" column="periodid"
- foreign-key="fk_mapview_periodid" />
-
- <many-to-one name="parentOrganisationUnit" class="org.hisp.dhis.organisationunit.OrganisationUnit"
- column="parentorganisationunitid" foreign-key="fk_mapview_parentorganisationunitid" />
-
- <many-to-one name="organisationUnitLevel" class="org.hisp.dhis.organisationunit.OrganisationUnitLevel"
- column="organisationunitlevelid" foreign-key="fk_mapview_organisationunitlevelid" />
+ <list name="dataElements" table="mapview_dataelements">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_dataelements_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <many-to-many column="dataelementid" class="org.hisp.dhis.dataelement.DataElement"
+ foreign-key="fk_mapview_dataelements_dataelementid" />
+ </list>
+
+ <list name="dataElementOperands" table="mapview_dataelementoperands" cascade="all-delete-orphan">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_dataelementoperands_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <many-to-many column="dataelementoperandid" class="org.hisp.dhis.dataelement.DataElementOperand"
+ foreign-key="fk_mapview_dataelementoperands_dataelementoperandid" />
+ </list>
+
+ <list name="indicators" table="mapview_indicators">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_indicators_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <many-to-many column="indicatorid" class="org.hisp.dhis.indicator.Indicator"
+ foreign-key="fk_mapview_indicators_indicatorid" />
+ </list>
+
+ <list name="organisationUnits" table="mapview_organisationunits">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_organisationunits_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <many-to-many column="organisationunitid" class="org.hisp.dhis.organisationunit.OrganisationUnit"
+ foreign-key="fk_mapview_organisationunits_organisationunitid" />
+ </list>
+
+ <list name="periods" table="mapview_periods">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_periods_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <many-to-many column="periodid" class="org.hisp.dhis.period.Period"
+ foreign-key="fk_mapview_periods_periodid" />
+ </list>
+
+ <list name="organisationUnitLevels" table="mapview_orgunitlevels">
+ <cache usage="read-write" />
+ <key column="mapviewid" foreign-key="fk_mapview_orgunitlevels_mapviewid" />
+ <list-index column="sort_order" base="0" />
+ <element column="orgunitlevel" type="integer" />
+ </list>
<property name="legendType" />
=== modified file 'dhis-2/dhis-services/dhis-service-mapgeneration/src/main/java/org/hisp/dhis/mapgeneration/GeoToolsMapGenerationService.java'
--- dhis-2/dhis-services/dhis-service-mapgeneration/src/main/java/org/hisp/dhis/mapgeneration/GeoToolsMapGenerationService.java 2013-09-09 11:48:46 +0000
+++ dhis-2/dhis-services/dhis-service-mapgeneration/src/main/java/org/hisp/dhis/mapgeneration/GeoToolsMapGenerationService.java 2013-09-17 16:22:09 +0000
@@ -28,8 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.common.NameableObjectUtils.getList;
-
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
@@ -161,15 +159,29 @@
private InternalMapLayer getSingleInternalMapLayer( MapView mapView )
{
- if ( mapView == null || mapView.getPeriod() == null || mapView.getParentOrganisationUnit() == null )
+ if ( mapView == null )
{
return null;
}
boolean isIndicator = MapView.VALUE_TYPE_INDICATOR.equals( mapView.getValueType() );
- List<OrganisationUnit> organisationUnits = new ArrayList<OrganisationUnit>( organisationUnitService.
- getOrganisationUnitsAtLevel( mapView.getOrganisationUnitLevel().getLevel(), mapView.getParentOrganisationUnit() ) );
+ List<OrganisationUnit> atLevels = new ArrayList<OrganisationUnit>();
+ List<OrganisationUnit> inGroups = new ArrayList<OrganisationUnit>();
+
+ if ( mapView.hasOrganisationUnitLevels() )
+ {
+ atLevels.addAll( organisationUnitService.getOrganisationUnitsAtLevels( mapView.getOrganisationUnitLevels(), mapView.getOrganisationUnits() ) );
+ }
+
+ if ( mapView.hasItemOrganisationUnitGroups() )
+ {
+ inGroups.addAll( organisationUnitService.getOrganisationUnits( mapView.getItemOrganisationUnitGroups(), mapView.getOrganisationUnits() ) );
+ }
+
+ mapView.init( null, null, null, atLevels, inGroups, null );
+
+ List<OrganisationUnit> organisationUnits = mapView.getAllOrganisationUnits();
java.util.Map<String, OrganisationUnit> uidOuMap = new HashMap<String, OrganisationUnit>();
@@ -178,12 +190,12 @@
uidOuMap.put( ou.getUid(), ou );
}
- mapView.setOrganisationUnitsAtLevel( organisationUnits );
-
- Grid grid = getDataGrid( mapView );
-
+ DataQueryParams params = analyticsService.getFromAnalyticalObject( mapView, null );
+
+ Grid grid = analyticsService.getAggregatedDataValues( params );
+
Collection<MapValue> mapValues = getMapValues( grid );
-
+
if ( mapValues.isEmpty() )
{
return null;
@@ -193,7 +205,7 @@
String name = mapView.getName();
// Get the period
- Period period = mapView.getPeriod();
+ Period period = mapView.getPeriods().get( 0 ); //TODO make more robust
// Get the low and high radii
int radiusLow = !isIndicator ? mapView.getRadiusLow() : DEFAULT_RADIUS_LOW;
@@ -255,30 +267,6 @@
}
/**
- * Creates a Grid with aggregated data.
- */
- private Grid getDataGrid( MapView mapView )
- {
- DataQueryParams params = new DataQueryParams();
-
- if ( mapView.getIndicator() != null )
- {
- params.setIndicators( getList( mapView.getIndicator() ) );
- }
- else if ( mapView.getDataElement() != null )
- {
- params.setDataElements( getList( mapView.getDataElement() ) );
- }
-
- //TODO operands
-
- params.setOrganisationUnits( mapView.getOrganisationUnitsAtLevel() );
- params.setFilterPeriods( getList( mapView.getPeriod() ) );
-
- return analyticsService.getAggregatedDataValues( params );
- }
-
- /**
* Creates a list of aggregated map values.
*/
private List<MapValue> getMapValues( Grid grid )
@@ -289,8 +277,8 @@
{
if ( row != null && row.size() >= 3 )
{
- String ou = (String) row.get( 1 );
- Double value = (Double) row.get( 2 );
+ String ou = (String) row.get( 0 );
+ Double value = (Double) row.get( ( row.size() - 1 ) );
mapValues.add( new MapValue( ou, value ) );
}
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2013-08-15 11:30:31 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2013-09-17 16:22:09 +0000
@@ -70,7 +70,7 @@
<list name="dataElementOperands" table="chart_dataelementoperands" cascade="all-delete-orphan">
<cache usage="read-write" />
- <key column="chartid" foreign-key="fk_chart_dataelementoperandid_chartid" />
+ <key column="chartid" foreign-key="fk_chart_dataelementoperands_chartid" />
<list-index column="sort_order" base="0" />
<many-to-many column="dataelementoperandid" class="org.hisp.dhis.dataelement.DataElementOperand"
foreign-key="fk_chart_dataelementoperands_dataelementoperandid" />
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml 2013-08-15 11:30:31 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/reporttable/hibernate/ReportTable.hbm.xml 2013-09-17 16:22:09 +0000
@@ -31,7 +31,7 @@
<list name="dataElementOperands" table="reporttable_dataelementoperands" cascade="all-delete-orphan">
<cache usage="read-write" />
- <key column="reporttableid" foreign-key="fk_reporttable_dataelementoperandid_reporttableid" />
+ <key column="reporttableid" foreign-key="fk_reporttable_dataelementoperands_reporttableid" />
<list-index column="sort_order" base="0" />
<many-to-many column="dataelementoperandid" class="org.hisp.dhis.dataelement.DataElementOperand"
foreign-key="fk_reporttable_dataelementoperands_dataelementoperandid" />
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/mapping/MapController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/mapping/MapController.java 2013-09-13 11:22:35 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/mapping/MapController.java 2013-09-17 16:22:09 +0000
@@ -28,8 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.period.PeriodType.getPeriodFromIsoString;
-
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.util.Iterator;
@@ -41,6 +39,7 @@
import org.hisp.dhis.api.controller.AbstractCrudController;
import org.hisp.dhis.api.utils.ContextUtils;
import org.hisp.dhis.api.utils.ContextUtils.CacheStrategy;
+import org.hisp.dhis.common.DimensionService;
import org.hisp.dhis.dataelement.DataElementOperandService;
import org.hisp.dhis.dataelement.DataElementService;
import org.hisp.dhis.dxf2.utils.JacksonUtils;
@@ -51,8 +50,10 @@
import org.hisp.dhis.mapping.Map;
import org.hisp.dhis.mapping.MapView;
import org.hisp.dhis.mapping.MappingService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.organisationunit.OrganisationUnitGroupService;
import org.hisp.dhis.organisationunit.OrganisationUnitService;
+import org.hisp.dhis.period.Period;
import org.hisp.dhis.period.PeriodService;
import org.hisp.dhis.user.CurrentUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -104,6 +105,9 @@
@Autowired
private MapGenerationService mapGenerationService;
+
+ @Autowired
+ private DimensionService dimensionService;
@Autowired
private ContextUtils contextUtils;
@@ -194,22 +198,22 @@
@Override
public void postProcessEntity( Map map ) throws Exception
{
+ I18nFormat format = i18nManager.getI18nFormat();
+
for ( MapView view : map.getMapViews() )
{
- if ( view != null )
+ view.populateAnalyticalProperties();
+
+ for ( OrganisationUnit organisationUnit : view.getOrganisationUnits() )
{
- if ( view.getPeriod() != null )
- {
- I18nFormat format = i18nManager.getI18nFormat();
-
- view.getPeriod().setName( format.formatPeriod( view.getPeriod() ) );
- }
-
- if ( view.getParentOrganisationUnit() != null )
- {
- String parentUid = view.getParentOrganisationUnit().getUid();
- view.setParentGraph( view.getParentOrganisationUnit().getParentGraph() + "/" + parentUid );
- view.setParentLevel( organisationUnitService.getLevelOfOrganisationUnit( view.getParentOrganisationUnit().getId() ) );
+ view.getParentGraphMap().put( organisationUnit.getUid(), organisationUnit.getParentGraph() );
+ }
+
+ if ( view.getPeriods() != null && !view.getPeriods().isEmpty() )
+ {
+ for ( Period period : view.getPeriods() )
+ {
+ period.setName( format.formatPeriod( period ) );
}
}
}
@@ -233,54 +237,12 @@
private void mergeMap( Map map )
{
- if ( map.getUser() != null )
- {
- map.setUser( currentUserService.getCurrentUser() );
- }
}
private void mergeMapView( MapView view )
{
- if ( view.getIndicatorGroup() != null )
- {
- view.setIndicatorGroup( indicatorService.getIndicatorGroup( view.getIndicatorGroup().getUid() ) );
- }
-
- if ( view.getIndicator() != null )
- {
- view.setIndicator( indicatorService.getIndicator( view.getIndicator().getUid() ) );
- }
-
- if ( view.getDataElementGroup() != null )
- {
- view.setDataElementGroup( dataElementService.getDataElementGroup( view.getDataElementGroup().getUid() ) );
- }
-
- if ( view.getDataElement() != null )
- {
- view.setDataElement( dataElementService.getDataElement( view.getDataElement().getUid() ) );
- }
+ dimensionService.mergeAnalyticalObject( view );
- if ( view.getDataElementOperand() != null )
- {
- view.setDataElementOperand( operandService.getDataElementOperandByUid( view.getDataElementOperand().getUid() ) );
- }
-
- if ( view.getPeriod() != null )
- {
- view.setPeriod( periodService.reloadPeriod( getPeriodFromIsoString( view.getPeriod().getUid() ) ) );
- }
-
- if ( view.getParentOrganisationUnit() != null )
- {
- view.setParentOrganisationUnit( organisationUnitService.getOrganisationUnit( view.getParentOrganisationUnit().getUid() ) );
- }
-
- if ( view.getOrganisationUnitLevel() != null )
- {
- view.setOrganisationUnitLevel( organisationUnitService.getOrganisationUnitLevel( view.getOrganisationUnitLevel().getUid() ) );
- }
-
if ( view.getLegendSet() != null )
{
view.setLegendSet( mappingService.getMapLegendSet( view.getLegendSet().getUid() ) );
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/green/green.css'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/green/green.css 2013-09-16 16:18:38 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/green/green.css 2013-09-17 16:22:09 +0000
@@ -61,7 +61,7 @@
top: 0px;
left: 0px;
right: 0px;
- box-shadow: 0 0 2px #000;
+ box-shadow: 0 0 3px #222;
}
#headerBanner
@@ -215,7 +215,7 @@
left: 0px;
padding-top: 6px;
border-right: 1px solid #ddd;
- box-shadow: #eee 0 0 2px 0;
+ box-shadow: #ddd 0 0 2px 0;
}
#leftBarContents
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/india/india.css'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/india/india.css 2013-09-16 16:18:38 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/india/india.css 2013-09-17 16:22:09 +0000
@@ -61,7 +61,7 @@
top: 0px;
left: 0px;
right: 0px;
- box-shadow: 0 0 2px #000;
+ box-shadow: 0 0 3px #222;
}
#headerBanner
@@ -215,7 +215,7 @@
left: 0px;
padding-top: 6px;
border-right: 1px solid #ddd;
- box-shadow: #eee 0 0 2px 0;
+ box-shadow: #ddd 0 0 2px 0;
}
#leftBarContents
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/light_blue/light_blue.css'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/light_blue/light_blue.css 2013-09-16 16:18:38 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/light_blue/light_blue.css 2013-09-17 16:22:09 +0000
@@ -61,7 +61,7 @@
top: 0px;
left: 0px;
right: 0px;
- box-shadow: 0 0 2px #000;
+ box-shadow: 0 0 3px #222;
}
#headerBanner
@@ -215,7 +215,7 @@
left: 0px;
padding-top: 6px;
border-right: 1px solid #ddd;
- box-shadow: #eee 0 0 2px 0;
+ box-shadow: #ddd 0 0 2px 0;
}
#leftBarContents
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/vietnam/vietnam.css'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/vietnam/vietnam.css 2013-09-16 16:18:38 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/vietnam/vietnam.css 2013-09-17 16:22:09 +0000
@@ -61,7 +61,7 @@
top: 0px;
left: 0px;
right: 0px;
- box-shadow: 0 0 2px #000;
+ box-shadow: 0 0 3px #222;
}
#headerBanner
@@ -215,7 +215,7 @@
left: 0px;
padding-top: 6px;
border-right: 1px solid #ddd;
- box-shadow: #eee 0 0 2px 0;
+ box-shadow: #ddd 0 0 2px 0;
}
#leftBarContents
=== modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/pom.xml'
--- dhis-2/dhis-web/dhis-web-dashboard-integration/pom.xml 2013-05-31 08:27:38 +0000
+++ dhis-2/dhis-web/dhis-web-dashboard-integration/pom.xml 2013-09-17 16:22:09 +0000
@@ -45,6 +45,10 @@
</dependency>
<dependency>
<groupId>org.hisp.dhis</groupId>
+ <artifactId>dhis-service-mapgeneration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hisp.dhis</groupId>
<artifactId>dhis-service-core</artifactId>
</dependency>
<dependency>