From 5044e541c2266d2cfcfbcf7d0c580a682d3f3307 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 4 Feb 2013 14:17:36 +0100 Subject: [PATCH] Use new database query when filtering projects list The database query that filters the orders by several fields is used only when the subelements checkbox is not clicked. Otherwise the old query is used and the old behavior is kept for the filtering. However, if the checkbox is not clicked, the new query is used to get the initial list and to do the successive filtering too. FEA: ItEr77S15FilteringEnhancements --- .../web/orders/OrderCRUDController.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index 267157f57..92d8624f7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -698,6 +698,14 @@ public class OrderCRUDController extends GenericForwardComposer { } public List getOrders() { + if (checkIncludeOrderElements.isChecked()) { + return orderModel.getOrders(); + } + + return getOrdersFiltered(); + } + + private List getOrdersFiltered() { List labels = new ArrayList(); List criteria = new ArrayList(); ExternalCompany customer = null; @@ -1427,7 +1435,9 @@ public class OrderCRUDController extends GenericForwardComposer { public void onApplyFilter() { OrderPredicate predicate = createPredicate(); - if (predicate != null) { + if (predicate != null && checkIncludeOrderElements.isChecked()) { + // Force reload conversation state in oderModel + getOrders(); filterByPredicate(predicate); } else { showAllOrders(); @@ -1454,8 +1464,8 @@ public class OrderCRUDController extends GenericForwardComposer { listing.invalidate(); } - public void showAllOrders() { - listing.setModel(new SimpleListModel(orderModel.getOrders().toArray())); + private void showAllOrders() { + listing.setModel(new SimpleListModel(getOrders().toArray())); listing.invalidate(); }