dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #17437
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6936: Added method for getByLastUpdated, impl on generic idobjectstore. Needs to be exposed on all serv...
------------------------------------------------------------
revno: 6936
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2012-05-14 22:24:22 +0200
message:
Added method for getByLastUpdated, impl on generic idobjectstore. Needs to be exposed on all services, only exposed on OrganisationUnitService and OrganisationUnitController. Only the format year/mm/dd is currenly supported (slashes not dashes).
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java
dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java
dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java
dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java
--
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/GenericIdentifiableObjectStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2012-05-06 18:55:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2012-05-14 20:24:22 +0000
@@ -28,6 +28,7 @@
*/
import java.util.Collection;
+import java.util.Date;
import java.util.List;
/**
@@ -95,4 +96,12 @@
* @return a list of objects.
*/
List<T> getByUid( Collection<String> uids );
+
+ /**
+ * Returns all objects that are equal to or newer than given date
+ *
+ * @param lastUpdate Date to compare to
+ * @return All objects equal or newer than given date
+ */
+ List<T> getByLastUpdated(Date lastUpdate);
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-05-06 18:55:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-05-14 20:24:22 +0000
@@ -29,10 +29,7 @@
import org.hisp.dhis.hierarchy.HierarchyViolationException;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
/**
* Defines methods for working with OrganisationUnits.
@@ -158,6 +155,14 @@
OrganisationUnit getOrganisationUnitByNameIgnoreCase( String name );
/**
+ * Returns all objects that are equal to or newer than given date
+ *
+ * @param lastUpdated Date to compare to
+ * @return All objects equal or newer than given date
+ */
+ List<OrganisationUnit> getOrganisationUnitsByLastUpdated(Date lastUpdated);
+
+ /**
* Returns all root OrganisationUnits. A root OrganisationUnit is an
* OrganisationUnit with no parent/the parent set to null.
*
=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java 2012-05-08 17:24:42 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java 2012-05-14 20:24:22 +0000
@@ -98,13 +98,10 @@
doImport( metaData.getOrganisationUnitGroups(), importOptions, importSummary );
doImport( metaData.getOrganisationUnitGroupSets(), importOptions, importSummary );
-/*
doImport( metaData.getUsers(), importOptions, importSummary );
doImport( metaData.getUserGroups(), importOptions, importSummary );
doImport( metaData.getUserAuthorityGroups(), importOptions, importSummary );
-*/
- /*
doImport( metaData.getConcepts(), importOptions, importSummary );
doImport( metaData.getConstants(), importOptions, importSummary );
doImport( metaData.getDocuments(), importOptions, importSummary );
@@ -119,14 +116,12 @@
doImport( metaData.getDataElements(), importOptions, importSummary );
doImport( metaData.getDataElementGroups(), importOptions, importSummary );
doImport( metaData.getDataElementGroupSets(), importOptions, importSummary );
-*/
doImport( metaData.getIndicatorTypes(), importOptions, importSummary );
doImport( metaData.getIndicators(), importOptions, importSummary );
doImport( metaData.getIndicatorGroups(), importOptions, importSummary );
doImport( metaData.getIndicatorGroupSets(), importOptions, importSummary );
-/*
doImport( metaData.getMaps(), importOptions, importSummary );
doImport( metaData.getMapLegends(), importOptions, importSummary );
doImport( metaData.getMapLegendSets(), importOptions, importSummary );
@@ -143,9 +138,8 @@
doImport( metaData.getCharts(), importOptions, importSummary );
doImport( metaData.getDataSets(), importOptions, importSummary );
-*/
- // cacheManager.clearCache();
+ cacheManager.clearCache();
objectBridge.destroy();
Date endDate = new Date();
=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java 2012-05-08 17:24:42 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java 2012-05-14 20:24:22 +0000
@@ -29,19 +29,38 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.hisp.dhis.attribute.Attribute;
+import org.hisp.dhis.chart.Chart;
import org.hisp.dhis.common.IdentifiableObject;
import org.hisp.dhis.common.IdentifiableObjectManager;
import org.hisp.dhis.common.NameableObject;
+import org.hisp.dhis.constant.Constant;
+import org.hisp.dhis.dataelement.*;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.document.Document;
import org.hisp.dhis.indicator.Indicator;
import org.hisp.dhis.indicator.IndicatorGroup;
import org.hisp.dhis.indicator.IndicatorGroupSet;
import org.hisp.dhis.indicator.IndicatorType;
+import org.hisp.dhis.mapping.MapLayer;
+import org.hisp.dhis.mapping.MapLegend;
+import org.hisp.dhis.mapping.MapLegendSet;
+import org.hisp.dhis.mapping.MapView;
+import org.hisp.dhis.option.OptionSet;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.organisationunit.OrganisationUnitGroup;
import org.hisp.dhis.organisationunit.OrganisationUnitGroupSet;
import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
import org.hisp.dhis.period.PeriodStore;
import org.hisp.dhis.period.PeriodType;
+import org.hisp.dhis.report.Report;
+import org.hisp.dhis.reporttable.ReportTable;
+import org.hisp.dhis.sqlview.SqlView;
+import org.hisp.dhis.user.User;
+import org.hisp.dhis.user.UserAuthorityGroup;
+import org.hisp.dhis.user.UserGroup;
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleGroup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -95,6 +114,20 @@
static
{
registeredTypes.add( PeriodType.class );
+ registeredTypes.add( Document.class );
+ registeredTypes.add( Constant.class );
+ registeredTypes.add( Attribute.class );
+ // registeredTypes.add( Concept.class );
+ registeredTypes.add( SqlView.class );
+ registeredTypes.add( Chart.class );
+ registeredTypes.add( Report.class );
+ registeredTypes.add( ReportTable.class );
+ // registeredTypes.add( DataDictionary.class );
+
+ registeredTypes.add( User.class );
+ registeredTypes.add( UserGroup.class );
+ registeredTypes.add( UserAuthorityGroup.class );
+
registeredTypes.add( OrganisationUnitLevel.class );
registeredTypes.add( OrganisationUnit.class );
registeredTypes.add( OrganisationUnitGroup.class );
@@ -104,6 +137,25 @@
registeredTypes.add( IndicatorType.class );
registeredTypes.add( IndicatorGroup.class );
registeredTypes.add( IndicatorGroupSet.class );
+
+ registeredTypes.add( DataElement.class );
+ registeredTypes.add( OptionSet.class );
+ registeredTypes.add( DataElementGroup.class );
+ registeredTypes.add( DataElementGroupSet.class );
+ registeredTypes.add( DataElementCategory.class );
+ registeredTypes.add( DataElementCategoryOption.class );
+ registeredTypes.add( DataElementCategoryCombo.class );
+ registeredTypes.add( DataElementCategoryOptionCombo.class );
+
+ registeredTypes.add( ValidationRule.class );
+ registeredTypes.add( ValidationRuleGroup.class );
+
+ registeredTypes.add( DataSet.class );
+
+ registeredTypes.add( MapView.class );
+ registeredTypes.add( MapLayer.class );
+ registeredTypes.add( MapLegend.class );
+ registeredTypes.add( MapLegendSet.class );
}
@Override
@@ -243,7 +295,7 @@
}
else
{
- log.warn( "Trying to save unsupported type.. object discarded." );
+ log.warn( "Trying to save unsupported type + " + object.getClass() + " with object " + object + " object discarded." );
}
}
@@ -262,7 +314,7 @@
}
else
{
- log.warn( "Trying to update unsupported type.. object discarded." );
+ log.warn( "Trying to update unsupported type + " + object.getClass() + " with object " + object + " object discarded." );
}
}
@@ -277,11 +329,11 @@
}
else if ( objects.size() > 1 )
{
- log.debug( "Multiple objects found.. object discarded, returning null." );
+ log.debug( "Multiple objects found for " + object + ", object discarded, returning null." );
}
else
{
- log.debug( "No object found, returning null." );
+ log.debug( "No object found for " + object + ", returning null." );
}
return null;
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java 2011-12-09 19:30:02 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java 2012-05-14 20:24:22 +0000
@@ -31,6 +31,9 @@
import org.hisp.dhis.common.GenericIdentifiableObjectStore;
import org.hisp.dhis.hibernate.HibernateGenericStore;
+import java.util.Date;
+import java.util.List;
+
/**
* @author bobj
*/
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-05-06 18:55:26 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-05-14 20:24:22 +0000
@@ -205,6 +205,12 @@
return organisationUnitStore.getOrganisationUnitByNameIgnoreCase( name );
}
+ @Override
+ public List<OrganisationUnit> getOrganisationUnitsByLastUpdated( Date lastUpdated )
+ {
+ return organisationUnitStore.getByLastUpdated( lastUpdated );
+ }
+
public Collection<OrganisationUnit> getRootOrganisationUnits()
{
return organisationUnitStore.getRootOrganisationUnits();
=== modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java'
--- dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2012-05-14 18:21:39 +0000
+++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2012-05-14 20:24:22 +0000
@@ -41,6 +41,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Date;
import java.util.List;
/**
@@ -313,25 +314,34 @@
criteria.add( Restrictions.ilike( "name", "%" + name + "%" ) );
return ((Number) criteria.uniqueResult()).intValue();
}
-
+
@Override
public List<T> getByUid( Collection<String> uids )
{
List<T> list = new ArrayList<T>();
-
- if ( uids != null )
+
+ for ( String uid : uids )
{
- for ( String uid : uids )
+ if ( uids != null )
{
T object = getByUid( uid );
-
+
if ( object != null )
{
list.add( object );
}
}
}
-
+
return list;
}
+
+ @Override
+ public List<T> getByLastUpdated( Date lastUpdated )
+ {
+ Criteria criteria = getCriteria();
+ criteria.add( Restrictions.or( Restrictions.eq( "lastUpdated", lastUpdated ), Restrictions.gt( "lastUpdated", lastUpdated ) ) );
+
+ return criteria.list();
+ }
}
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java 2012-05-13 16:59:37 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java 2012-05-14 20:24:22 +0000
@@ -18,7 +18,6 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import javax.servlet.http.HttpServletRequest;
@@ -41,7 +40,7 @@
@Autowired
private ObjectPersister objectPersister;
-
+
@Autowired
private IdentifiableObjectManager identifiableObjectManager;
@@ -54,7 +53,11 @@
{
OrganisationUnits organisationUnits = new OrganisationUnits();
- if ( params.isPaging() )
+ if(params.getLastUpdated() != null)
+ {
+ organisationUnits.setOrganisationUnits( organisationUnitService.getOrganisationUnitsByLastUpdated( params.getLastUpdated() ) );
+ }
+ else if ( params.isPaging() )
{
int total = organisationUnitService.getNumberOfOrganisationUnits();
@@ -98,12 +101,12 @@
return "organisationUnit";
}
-
+
@RequestMapping( value = "/search/{query}", method = RequestMethod.GET )
public String searchOrganisationUnit( @PathVariable String query, IdentifiableObjectParams params, Model model, HttpServletRequest request )
{
OrganisationUnit organisationUnit = identifiableObjectManager.search( OrganisationUnit.class, query );
-
+
if ( params.hasLinks() )
{
new WebLinkPopulator( request ).addLinks( organisationUnit );