Refactos DMP update when set to "Finalized", now sets it's Datasets status of not "Finalized" to "Canceled".

This commit is contained in:
gkolokythas 2019-06-21 14:04:29 +03:00
parent 590d85b355
commit 55407fd053
2 changed files with 48 additions and 54 deletions

View File

@ -109,8 +109,7 @@ public class DataManagementPlanManager {
return new DataManagementPlanListingModel().fromDataModelDatasets(item);
})
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
}
else{
} else {
itemsFuture = pagedItems
.selectAsync(item -> new DataManagementPlanListingModel().fromDataModel(item))
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
@ -140,8 +139,7 @@ public class DataManagementPlanManager {
return new DataManagementPlanListingModel().fromDataModelDatasets(item);
})
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
}
else{
} else {
itemsFuture = pagedItems
.selectAsync(item -> new DataManagementPlanListingModel().fromDataModel(item))
.whenComplete((resultList, throwable) -> dataTable.setData(resultList));
@ -301,23 +299,6 @@ public class DataManagementPlanManager {
DataManagementPlanOverviewModel datamanagementPlan = new DataManagementPlanOverviewModel();
datamanagementPlan.fromDataModelDatasets(dataManagementPlanEntity);
/*Map dmpProperties = dataManagementPlanEntity.getDmpProperties() != null ? new org.json.JSONObject(dataManagementPlanEntity.getDmpProperties()).toMap() : null;
datamanagementPlan.setDynamicFields(dynamicProjectConfiguration.getFields().stream().map(item -> {
DynamicFieldWithValue fieldWithValue = new DynamicFieldWithValue();
fieldWithValue.setId(item.getId());
fieldWithValue.setDependencies(item.getDependencies());
fieldWithValue.setName(item.getName());
fieldWithValue.setQueryProperty(item.getQueryProperty());
fieldWithValue.setRequired(item.getRequired());
return fieldWithValue;
}).collect(Collectors.toList()));*/
/*if (dmpProperties != null && datamanagementPlan.getDynamicFields() != null)
datamanagementPlan.getDynamicFields().forEach(item -> {
Map<String, String> properties = (Map<String, String>) dmpProperties.get(item.getId());
if (properties != null)
item.setValue(new Tuple<>(properties.get("id"), properties.get("label")));
});*/
return datamanagementPlan;
}
@ -346,8 +327,7 @@ public class DataManagementPlanManager {
item.setValue(new Tuple<>(properties.get("id"), properties.get("label")));
});
return datamanagementPlan;
}
else {
} else {
throw new Exception("Selected DMP is not public");
}
}
@ -359,8 +339,7 @@ public class DataManagementPlanManager {
datamanagementPlan.fromDataModelDatasets(dataManagementPlanEntity);
datamanagementPlan.setDatasets(datamanagementPlan.getDatasets().stream().filter(dataset -> dataset.getStatus() == Dataset.Status.FINALISED.getValue()).collect(Collectors.toList()));
return datamanagementPlan;
}
else {
} else {
throw new Exception("Selected DMP is not public");
}
}
@ -450,9 +429,18 @@ public class DataManagementPlanManager {
if (dataManagementPlan.getStatus() == DMP.DMPStatus.FINALISED.getValue()) {
apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao()
.asQueryable().where((builder, root) -> root.get("id").in(dataManagementPlan.getDatasets()
.stream().map(x -> UUID.fromString(x.getId())).collect(Collectors.toList())))
.asQueryable().where((builder, root) -> root.get("id").in(dataManagementPlan.getDatasetsToBeFinalized()))
.update(root -> root.<Integer>get("status"), Dataset.Status.FINALISED.getValue());
List<UUID> datasetsToBeCanceled = new LinkedList<>();
for (Dataset dataset : dmp.getDataset()) {
if (!dataset.getStatus().equals(Dataset.Status.FINALISED.getValue()) && !dataManagementPlan.getDatasetsToBeFinalized().contains(dataset.getId())) {
datasetsToBeCanceled.add(dataset.getId());
}
}
apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao()
.asQueryable().where((builder, root) -> root.get("id").in(datasetsToBeCanceled))
.update(root -> root.<Integer>get("status"), Dataset.Status.CANCELED.getValue());
}
if (dataManagementPlan.getAssociatedUsers().size() == 0)
@ -754,8 +742,7 @@ public class DataManagementPlanManager {
File file = new File(fileName);
try {
mapper.writeValue(file, rdaExportModel);
}
catch (IOException e) {
} catch (IOException e) {
e.printStackTrace();
}
@ -816,8 +803,7 @@ public class DataManagementPlanManager {
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
DmpImportModel dmpImportModel = (DmpImportModel) jaxbUnmarshaller.unmarshal(in);
dataManagementPlans.add(dmpImportModel);
}
catch (IOException | JAXBException ex){
} catch (IOException | JAXBException ex) {
ex.printStackTrace();
}
// TODO Iterate through the list of dataManagmentPlans.

View File

@ -37,6 +37,7 @@ public class DataManagementPlanEditorModel implements DataModel<DMP, DataManagem
private List<DynamicFieldWithValue> dynamicFields;
private Map<String, Object> properties;
private List<UserInfoListingModel> users;
private List<UUID> datasetsToBeFinalized;
public UUID getId() {
return id;
@ -185,6 +186,13 @@ public class DataManagementPlanEditorModel implements DataModel<DMP, DataManagem
this.users = users;
}
public List<UUID> getDatasetsToBeFinalized() {
return datasetsToBeFinalized;
}
public void setDatasetsToBeFinalized(List<UUID> datasetsToBeFinalized) {
this.datasetsToBeFinalized = datasetsToBeFinalized;
}
@Override
public DataManagementPlanEditorModel fromDataModel(DMP entity) {
this.id = entity.getId();