diff --git a/doc/release-notes/11703-notifications-and-templates-api-fixes.md b/doc/release-notes/11703-notifications-and-templates-api-fixes.md new file mode 100644 index 00000000000..27e5484cd12 --- /dev/null +++ b/doc/release-notes/11703-notifications-and-templates-api-fixes.md @@ -0,0 +1,13 @@ +# Release Notes + +## Templates API fixes +- Added the missing `isDefault` field to the **Get Dataset Templates** API response. +- Added the missing `fileAccessRequest` field of terms of use and access to the **Get Dataset Templates** API response. +- Added the missing `contactForAccess` field of terms of use and access to the **Get Dataset Templates** API response. +- Resolved an API **500 error** that occurred when working with templates containing custom license terms. +- Updated API behavior so templates are **no longer returned from parent dataverses** when the "Include Templates from Root" option is unchecked in the UI. + +## Notifications API fixes +- Fixed API errors caused by NullPointerException when retrieving notifications without a requestor. + +See #11704 diff --git a/src/main/java/edu/harvard/iq/dataverse/api/dto/NewTemplateDTO.java b/src/main/java/edu/harvard/iq/dataverse/api/dto/NewTemplateDTO.java index 28e21ffc6c0..31adc30f2b9 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/dto/NewTemplateDTO.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/dto/NewTemplateDTO.java @@ -38,6 +38,7 @@ public Template toTemplate() { template.updateInstructions(); template.setCreateTime(new Timestamp(new Date().getTime())); template.setUsageCount(0L); + template.setIsDefaultForDataverse(isDefault); return template; } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java index 32c63e55cb4..fb5e3534f0e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateTemplateCommand.java @@ -48,7 +48,14 @@ public Template execute(CommandContext ctxt) throws CommandException { DatasetFieldUtil.tidyUpFields(template.getDatasetFields(), false); } - return ctxt.templates().save(template); + Template createdTemplate = ctxt.templates().save(template); + + if (initialize && template.isIsDefaultForDataverse()) { + dataverse.setDefaultTemplate(createdTemplate); + ctxt.em().merge(dataverse); + } + + return template; } private static void updateTermsOfUseAndAccess(CommandContext ctxt, Template template) { diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java index f1104b5af15..3e7d4664793 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java @@ -26,14 +26,22 @@ public ListDataverseTemplatesCommand(DataverseRequest request, Dataverse dataver @Override public List