Commit 4c02fc4c authored by George Kalampokis's avatar George Kalampokis

Prevent to map associated Profiles to DMPs when they are loaded ONLY for autocomplete (ref #226)

parent cd1d81c3
......@@ -96,6 +96,7 @@ public class DataManagementPlanManager {
}
public DataTableData<DataManagementPlanListingModel> getPaged(DataManagementPlanTableRequest dataManagementPlanTableRequest, Principal principal, String fieldsGroup) throws Exception {
long startTime = System.currentTimeMillis();
UUID principalID = principal.getId();
QueryableList<DMP> items = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(dataManagementPlanTableRequest.getCriteria());
List<Integer> roles = new LinkedList<>();
......@@ -119,16 +120,30 @@ public class DataManagementPlanManager {
.collect(Collectors.toSet()));
return new DataManagementPlanListingModel().fromDataModelDatasets(item);
})
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
.whenComplete((resultList, throwable) -> {
logger.info("Select query took " + (System.currentTimeMillis() - startTime) + " millis");
dataTable.setData(resultList);
});
} else if (fieldsGroup.equals("autocomplete")) {
itemsFuture = pagedItems
.selectAsync(item -> new DataManagementPlanListingModel().fromDataModelAutoComplete(item))
.whenComplete((resultList, throwable) -> {
logger.info("Select query took " + (System.currentTimeMillis() - startTime) + " millis");
dataTable.setData(resultList);
});
} else {
itemsFuture = pagedItems
.selectAsync(item -> new DataManagementPlanListingModel().fromDataModelAssociatedProfiles(item))
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
.whenComplete((resultList, throwable) -> {
logger.info("Select query took " + (System.currentTimeMillis() - startTime) + " millis");
dataTable.setData(resultList);
});
}
CompletableFuture countFuture = authItems.countAsync().whenComplete((count, throwable) ->
dataTable.setTotalCount(count)
);
CompletableFuture countFuture = authItems.countAsync().whenComplete((count, throwable) -> {
logger.info("Count query took " + (System.currentTimeMillis() - startTime) + " millis");
dataTable.setTotalCount(count);
});
CompletableFuture.allOf(itemsFuture, countFuture).join();
return dataTable;
}
......
......@@ -192,6 +192,14 @@ public class DataManagementPlanListingModel implements DataModel<DMP, DataManage
return this;
}
public DataManagementPlanListingModel fromDataModelAutoComplete(DMP entity) {
this.id = entity.getId().toString();
this.label = entity.getLabel();
this.groupId = entity.getGroupId();
this.creationTime = entity.getCreated();
return this;
}
public DataManagementPlanListingModel fromDataModelDatasets(DMP entity) {
this.fromDataModel(entity);
this.status = entity.getStatus();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment