dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #38340
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19531: bugfix for ProgramStageController and filtering
------------------------------------------------------------
revno: 19531
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2015-07-03 11:08:33 +0700
message:
bugfix for ProgramStageController and filtering
modified:
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramStageController.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-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramStageController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramStageController.java 2015-02-20 09:14:02 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramStageController.java 2015-07-03 04:08:33 +0000
@@ -34,6 +34,7 @@
import org.hisp.dhis.program.ProgramService;
import org.hisp.dhis.program.ProgramStage;
import org.hisp.dhis.query.Order;
+import org.hisp.dhis.query.Query;
import org.hisp.dhis.schema.descriptors.ProgramStageSchemaDescriptor;
import org.hisp.dhis.webapi.controller.AbstractCrudController;
import org.hisp.dhis.webapi.webdomain.WebMetaData;
@@ -62,23 +63,18 @@
}
@Override
+ @SuppressWarnings( "unchecked" )
protected List<ProgramStage> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders )
{
List<ProgramStage> entityList = new ArrayList<>();
+ boolean haveFilters = !filters.isEmpty();
+ Query query = queryService.getQueryFromUrl( getEntityClass(), filters, orders );
+ query.setDefaultOrder();
if ( options.getOptions().containsKey( "query" ) )
{
entityList = Lists.newArrayList( manager.filter( getEntityClass(), options.getOptions().get( "query" ) ) );
}
- else if ( options.hasPaging() )
- {
- int count = manager.getCount( getEntityClass() );
-
- Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
- metaData.setPager( pager );
-
- entityList = new ArrayList<>( manager.getBetweenSorted( getEntityClass(), pager.getOffset(), pager.getPageSize() ) );
- }
else if ( options.getOptions().containsKey( "program" ) )
{
String programId = options.getOptions().get( "program" );
@@ -89,9 +85,20 @@
entityList = new ArrayList<>( program.getProgramStages() );
}
}
+ else if ( options.hasPaging() && !haveFilters )
+ {
+ int count = queryService.count( query );
+
+ Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
+ metaData.setPager( pager );
+
+ query.setFirstResult( pager.getOffset() );
+ query.setMaxResults( pager.getPageSize() );
+ entityList = (List<ProgramStage>) queryService.query( query ).getItems();
+ }
else
{
- entityList = new ArrayList<>( manager.getAllSorted( getEntityClass() ) );
+ entityList = (List<ProgramStage>) queryService.query( query ).getItems();
}
return entityList;