From 0adc7044abdb48b9683acd1706d2f73f4557364a Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 5 Apr 2023 11:13:26 +0300 Subject: [PATCH] h2020.docx: [Bug fix] Updated image of Argos in h2020.docx DMP template | DataManagementPlanManager.java & DatasetManager.java: Added parameter "isDataset" in fillFirstPage() | WordBuilder.java: [Bug fix] Added parameter isDataset in fillFirstPage() and added some checks in description. (cherry picked from commit c9b4b35e397276c820143b80cb19970ebacbdf53) --- .../managers/DataManagementPlanManager.java | 2 +- .../eudat/logic/managers/DatasetManager.java | 2 +- .../utilities/documents/word/WordBuilder.java | 15 +++++++++------ .../src/main/resources/documents/h2020.docx | Bin 14632 -> 20971 bytes 4 files changed, 11 insertions(+), 8 deletions(-) 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 25ab0217a..abcf306b5 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 @@ -1201,7 +1201,7 @@ public class DataManagementPlanManager { if (!dmpEntity.isPublic() && dmpEntity.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId()).collect(Collectors.toList()).size() == 0) throw new UnauthorisedException(); - wordBuilder.fillFirstPage(dmpEntity, null, document); + wordBuilder.fillFirstPage(dmpEntity, null, document, false); // int powered_pos = document.getParagraphs().size() - 3; int powered_pos = wordBuilder.findPosOfPoweredBy(document); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java index 20dd25807..298cfc37f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java @@ -406,7 +406,7 @@ public class DatasetManager { if (!dmpEntity.isPublic() && dmpEntity.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId()).collect(Collectors.toList()).size() == 0) throw new UnauthorisedException(); - wordBuilder.fillFirstPage(dmpEntity, datasetEntity, document); + wordBuilder.fillFirstPage(dmpEntity, datasetEntity, document, true); wordBuilder.fillFooter(dmpEntity, datasetEntity, document, true); int powered_pos = wordBuilder.findPosOfPoweredBy(document); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index 9863ec9ff..0a3d64dbe 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -922,7 +922,7 @@ public class WordBuilder { return -1; } - public void fillFirstPage(DMP dmpEntity, Dataset datasetEntity, XWPFDocument document) { + public void fillFirstPage(DMP dmpEntity, Dataset datasetEntity, XWPFDocument document, boolean isDataset) { int parPos = 0; int descrParPos = -1; XWPFParagraph descrPar = null; @@ -941,12 +941,14 @@ public class WordBuilder { } else if(datasetEntity != null && text.contains("{ARGOS.DATASET.TITLE}")) { text = text.replace("{ARGOS.DATASET.TITLE}", datasetEntity.getLabel()); r.setText(text, 0); - } else if((dmpEntity != null && text.contains("{ARGOS.DMP.DESCRIPTION}")) || (datasetEntity != null && text.contains("{ARGOS.DATASET.DESCRIPTION}"))) { +// } else if(text.equals("Description") && ((!isDataset && (dmpEntity == null || dmpEntity.getDescription() != null)) || (isDataset && (datasetEntity == null || datasetEntity.getDescription() == null)))) { +// r.setText("", 0); + } else if((dmpEntity != null && text.contains("{ARGOS.DMP.DESCRIPTION}") && !isDataset) || (datasetEntity != null && text.contains("{ARGOS.DATASET.DESCRIPTION}") && isDataset)) { descrParPos = parPos; descrPar = p; - if(dmpEntity != null) { + if(dmpEntity != null && !isDataset) { text = text.replace("{ARGOS.DMP.DESCRIPTION}", ""); - } else { + } else if(datasetEntity != null && isDataset) { text = text.replace("{ARGOS.DATASET.DESCRIPTION}", ""); } r.setText(text, 0); @@ -978,14 +980,15 @@ public class WordBuilder { } parPos++; } - if(descrParPos != -1 && dmpEntity!=null && dmpEntity.getDescription() != null) { + + if((descrParPos != -1) && (dmpEntity!=null) && (dmpEntity.getDescription() != null) && !isDataset) { XmlCursor cursor = descrPar.getCTP().newCursor(); cursor.toNextSibling(); Document htmlDoc = Jsoup.parse(((String)dmpEntity.getDescription()).replaceAll("\n", "
")); HtmlToWorldBuilder htmlToWorldBuilder = new HtmlToWorldBuilder(descrPar, 0, cursor); NodeTraversor.traverse(htmlToWorldBuilder, htmlDoc); } - if(descrParPos != -1 && datasetEntity != null && datasetEntity.getDescription() != null) { + if((descrParPos != -1) && (datasetEntity != null) && (datasetEntity.getDescription() != null) && isDataset) { XmlCursor cursor = descrPar.getCTP().newCursor(); cursor.toNextSibling(); Document htmlDoc = Jsoup.parse(((String)datasetEntity.getDescription()).replaceAll("\n", "
")); diff --git a/dmp-backend/web/src/main/resources/documents/h2020.docx b/dmp-backend/web/src/main/resources/documents/h2020.docx index 084eb42d82efbf4484185320c3f79d25a7e0960f..c821032e1ef8eb77bb43c1abfa1f5ab27bc37c34 100644 GIT binary patch delta 10724 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 Ik&KP1;a4*&oF delta 4443 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 J=cQk({|96>hIIe{