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 2ab542edd..b7f04db20 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 @@ -1292,6 +1292,22 @@ public class DataManagementPlanManager { dmpName.setTextContent(dmp.getLabel()); dmpElement.appendChild(dmpName); + if (dmp.getExtraProperties() != null && !dmp.getExtraProperties().isEmpty()) { + Map extraProperties = new ObjectMapper().readValue(dmp.getExtraProperties(), HashMap.class); + Element language = xmlDoc.createElement("language"); + language.setTextContent(extraProperties.get("language") != null ? extraProperties.get("language").toString() : null); + dmpElement.appendChild(language); + Element visibility = xmlDoc.createElement("visibility"); + visibility.setTextContent(extraProperties.get("visible") != null ? extraProperties.get("visible").toString() : null); + dmpElement.appendChild(visibility); + Element publicDate = xmlDoc.createElement("publicDate"); + publicDate.setTextContent(extraProperties.get("publicDate") != null ? extraProperties.get("publicDate").toString() : null); + dmpElement.appendChild(publicDate); + Element costs = xmlDoc.createElement("costs"); + costs.setTextContent(extraProperties.get("costs") != null ? extraProperties.get("costs").toString() : null); + dmpElement.appendChild(costs); + } + DMPProfile dmpProfile = dmp.getProfile(); Element dmpProfileElement = xmlDoc.createElement("dmpProfile"); Element dmpProfileName = xmlDoc.createElement("dmpProfileName"); @@ -1580,6 +1596,21 @@ public class DataManagementPlanManager { dm.setAssociatedUsers(associatedUsers); // Sets associatedUsers property. dm.setDynamicFields(dynamicFields); // Sets dynamicFields property. dm.setDefinition(dmpProfile); + ObjectMapper mapper = new ObjectMapper(); + Map extraPropertiesMap = new HashMap<>(); + if (dataManagementPlans.get(0).getLanguage() != null) { + extraPropertiesMap.put("language", dataManagementPlans.get(0).getLanguage()); + } + if (dataManagementPlans.get(0).getVisibility() != null) { + extraPropertiesMap.put("visible", dataManagementPlans.get(0).getVisibility()); + } + if (dataManagementPlans.get(0).getPublicDate() != null) { + extraPropertiesMap.put("publicDate", dataManagementPlans.get(0).getPublicDate()); + } + if (dataManagementPlans.get(0).getCosts() != null) { + extraPropertiesMap.put("costs", mapper.readValue(dataManagementPlans.get(0).getCosts(), ArrayList.class)); + } + dm.setExtraProperties(extraPropertiesMap); //createOrUpdate(apiContext, dm, principal); DMP dmp = this.createOrUpdate(dm, principal); @@ -2081,13 +2112,13 @@ public class DataManagementPlanManager { if (unpublishedUrl == null) { // Second step, add the file to the entry. FileEnvelope file = getWordDocument(id.toString(), principal, configLoader); - /*String name = file.getFilename().substring(0, file.getFilename().length() - 5); + String name = file.getFilename().substring(0, file.getFilename().length() - 5); File pdfFile = datasetManager.convertToPDF(file, environment); - String fileName = name + ".pdf";*/ - FileSystemResource fileSystemResource = new FileSystemResource(file.getFile()); + String fileName = name + ".pdf"; + FileSystemResource fileSystemResource = new FileSystemResource(pdfFile); HttpEntity addFileMapRequest = new HttpEntity<>(fileSystemResource, null); - String addFileUrl = links.get("bucket") + "/" + file.getFilename() + "?access_token=" + zenodoToken; + String addFileUrl = links.get("bucket") + "/" + fileName + "?access_token=" + zenodoToken; restTemplate.put(addFileUrl, addFileMapRequest); Files.deleteIfExists(file.getFile().toPath()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DmpImportModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DmpImportModel.java index 699e73fa3..231565c73 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DmpImportModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DmpImportModel.java @@ -19,6 +19,10 @@ public class DmpImportModel { private List associatedUsersImportModels; private List dynamicFieldsImportModels; private List datasetImportModels; + private String language; + private Boolean visibility; + private String publicDate; + private String costs; @XmlElement(name = "description") public String getDescriptionImport() { @@ -113,4 +117,37 @@ public class DmpImportModel { @XmlElement(name = "dataset") public List getDatasetImportModels() { return datasetImportModels; } public void setDatasetImportModels(List datasetImportModels) { this.datasetImportModels = datasetImportModels; } + + @XmlElement(name = "language") + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + @XmlElement(name = "visibility") + public Boolean getVisibility() { + return visibility; + } + + public void setVisibility(Boolean visibility) { + this.visibility = visibility; + } + @XmlElement(name = "publicDate") + public String getPublicDate() { + return publicDate; + } + + public void setPublicDate(String publicDate) { + this.publicDate = publicDate; + } + @XmlElement(name = "costs") + public String getCosts() { + return costs; + } + + public void setCosts(String costs) { + this.costs = costs; + } }