diff --git a/dspace/config/entities/relationship-types.xml b/dspace/config/entities/relationship-types.xml index a188f527348..153ccf4eea8 100644 --- a/dspace/config/entities/relationship-types.xml +++ b/dspace/config/entities/relationship-types.xml @@ -148,5 +148,33 @@ true + + Dataset + ResearchProject + isProjectThatProducedDataset + isDatasetProducedByProject + + 0 + 1 + + + 0 + + true + + + ResearchProject + PDAC + isPDACForProject + isProjectAssignedtoPDAC + + 0 + 1 + + + 0 + + true + diff --git a/dspace/config/local.cfg.RDC b/dspace/config/local.cfg.RDC new file mode 100644 index 00000000000..2afac8a7e6f --- /dev/null +++ b/dspace/config/local.cfg.RDC @@ -0,0 +1,21 @@ +##### Hide Item Metadata Fields ##### +##### TAMU Customization - Hidden metadata fields ##### +# Fields named here are hidden in the following places UNLESS the +# logged-in user is an Administrator: +# 1. REST API (and therefore UI) +# 2. RDF (every where as there is currently no possibility to authenticate) +# 3. OAI (every where as there is currently no possibility to authenticate) +# Attention: You need to rebuild the OAI SOLR index after every change of +# this property. Run [dspace-install]/bin/dspace oai import -c to do so. +# +# To designate a field as hidden, add a property here in the form: +# metadata.hide.SCHEMA.ELEMENT.QUALIFIER = true +# +# This default configuration hides the dc.description.provenance field, +# since that usually contains email addresses which ought to be kept +# private and is mainly of interest to administrators: +metadata.hide.dc.creator.UIN = true +metadata.hide.dc.identifier.UIN = true +metadata.hide.dc.description.findingAid = true + +# END TAMU Customization - hidden metadata fields \ No newline at end of file diff --git a/dspace/config/registries/dublin-core-types.xml b/dspace/config/registries/dublin-core-types.xml index 1e46e85325c..79a1943a577 100644 --- a/dspace/config/registries/dublin-core-types.xml +++ b/dspace/config/registries/dublin-core-types.xml @@ -86,6 +86,68 @@ A person, organization, or service responsible for the content of the resource. Catch-all for unspecified contributors. + + + dc + contributor + member + Use for name of TAMU department or institute that is home to the research project + + + + + + dc + creator + UIN + TAMU identifier of PI of a research project + + + + + + dc + creator + pi + Name of Principal Investigator on research project + + + + + + dc + creator + copi + Name of Co-Principal Investigator on research project + + + + + + dc + description + role + Describes the role of the PI on the research project + + + + + + dc + identifier + UIN + TAMU identifier of a PDAC + + + + + + dc + description + findingAid + A single-level description of extent, scope, and content of the research data associated with a research project. For more details on archival practices, refer to the following resources: Extent https://saa-ts-dacs.github.io/dacs/06_part_I/03_chapter_02/05_extent.html, and Scope-and-Content https://saa-ts-dacs.github.io/dacs/06_part_I/04_chapter_03/01_scope_and_content.html + + diff --git a/dspace/config/registries/local-types.xml b/dspace/config/registries/local-types.xml index 564fd235a57..7771da382b0 100644 --- a/dspace/config/registries/local-types.xml +++ b/dspace/config/registries/local-types.xml @@ -69,4 +69,40 @@ Email of the Project Data Access Contact + + + + local + awardNumber + + Number identifying the individual grant that the sponsor awarded for the research project + + + + + + local + projectStatus + + Status of research project in Maestro + + + + + + local + contact + email + Email address of a PDAC + + + + + + local + contact + phone + Telephone number of a PDAC + + diff --git a/dspace/config/spring/api/virtual-metadata.xml b/dspace/config/spring/api/virtual-metadata.xml index 640b66fa040..918c95a5647 100644 --- a/dspace/config/spring/api/virtual-metadata.xml +++ b/dspace/config/spring/api/virtual-metadata.xml @@ -25,6 +25,8 @@ + + @@ -40,6 +42,7 @@ + @@ -82,6 +85,33 @@ + + + + + + + + local.pdac.name + + + + , + + + + + + + + dc.identifier.uri + + + + + + + diff --git a/dspace/modules/additions/src/main/java/org/dspace/content/RelationshipServiceImpl.java b/dspace/modules/additions/src/main/java/org/dspace/content/RelationshipServiceImpl.java index fae76133afb..f564aef5440 100644 --- a/dspace/modules/additions/src/main/java/org/dspace/content/RelationshipServiceImpl.java +++ b/dspace/modules/additions/src/main/java/org/dspace/content/RelationshipServiceImpl.java @@ -9,6 +9,7 @@ import java.sql.SQLException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -129,7 +130,6 @@ public Relationship create(Context context, Relationship relationship) throws SQ Relationship relationshipToReturn = relationshipDAO.create(context, relationship); updatePlaceInRelationship(context, relationshipToReturn, null, null, true, true); update(context, relationshipToReturn); - //TAMU Customization - Track PDAC chain of custody for RDS updatePdacChainOfCustody(PdacActionType.ADD, relationship, context); //End TAMU Customization - Track PDAC chain of custody for RDS @@ -1135,15 +1135,16 @@ public int countByItemRelationshipTypeAndRelatedList(Context context, UUID focus // TAMU Customization - Track changes to PDAC custody via metadata protected void updatePdacChainOfCustody(PdacActionType pdacActionType, Relationship relationship, Context context) { - final String validLeftType = "isPDACForDataset"; - final String validRightType = "isDatasetAssignedToPDAC"; + final List validLeftTypes = Arrays.asList("isPDACForDataset", "isPDACForProject"); + final List validRightTypes = Arrays.asList("isDatasetAssignedToPDAC","isProjectAssignedtoPDAC"); final String mdSchema = MetadataSchemaEnum.DC.getName(); final String mdElement = "description"; final String mdQualifier = "chainOfCustody"; // verify that this is a pdac relationship - if (relationship.getRelationshipType().getLeftwardType().equals(validLeftType) - && relationship.getRelationshipType().getRightwardType().equals(validRightType)) { + if (validLeftTypes.contains(relationship.getRelationshipType().getLeftwardType()) + && validRightTypes.contains(relationship.getRelationshipType().getRightwardType())) { + final String mdLanguage = "en"; final String timeOfAction = java.time.format.DateTimeFormatter.ISO_DATE_TIME .format(java.time.LocalDateTime.now());