From 87758c3e9a81e11b3f291b3a81b19f0349763d8d Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Wed, 24 Jan 2024 14:31:46 +0200 Subject: [PATCH] Fix various issues with adding/removing Dataset Templates --- .../eudat/logic/managers/DataManagementPlanManager.java | 8 ++++++++ .../dmp-editor-blueprint.component.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index a7c7b6042..295d04bc1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -544,6 +544,14 @@ public class DataManagementPlanManager { } if(newDmp.getId() != null){ + UUID dmpId = newDmp.getId(); + List dmpDatasetProfiles = apiContext.getOperationsContext().getDatabaseRepository().getDmpDatasetProfileDao().asQueryable() + .where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList(); + for (DMPDatasetProfile dmpDatasetProfile : dmpDatasetProfiles) { + if (newDmp.getAssociatedDmps().stream().filter(dmpDatasetProfile1 -> dmpDatasetProfile1.getId() != null).noneMatch(dmpDatasetProfile1 -> dmpDatasetProfile1.getId().equals(dmpDatasetProfile.getId()))) { + apiContext.getOperationsContext().getDatabaseRepository().getDmpDatasetProfileDao().delete(dmpDatasetProfile); + } + } for(DMPDatasetProfile dmpDatasetProfile : newDmp.getAssociatedDmps()){ apiContext.getOperationsContext().getDatabaseRepository().getDmpDatasetProfileDao().createOrUpdate(dmpDatasetProfile); } diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts index 3306c0880..64d9a1cea 100644 --- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts +++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts @@ -1111,7 +1111,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im } else { this.sectionTemplates[sectionIndex] = this.sectionTemplates[sectionIndex].filter(sectionProfile => sectionProfile.id !== event.id); - profiles = profiles.filter(sectionProfile => sectionProfile.descriptionTemplateId !== event.id); + profiles = profiles.filter(sectionProfile => sectionProfile.descriptionTemplateId !== event.id || !sectionProfile.data.dmpSectionIndex.includes(sectionIndex)); this.formGroup.get('profiles').setValue(profiles); } }