From 860d3286a192381c7448370eeb115f54370e57a4 Mon Sep 17 00:00:00 2001 From: Wendel Fabian Chinsamy Date: Wed, 5 Jun 2024 08:58:28 +0200 Subject: [PATCH 1/3] add before_save hook --- app/models/doi.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/models/doi.rb b/app/models/doi.rb index 26a9fb176..9946b8129 100644 --- a/app/models/doi.rb +++ b/app/models/doi.rb @@ -154,6 +154,7 @@ def validate_publisher_obj?(doi) before_validation :update_identifiers before_validation :update_types before_save :set_defaults, :save_metadata + before_save :update_schema_version before_create { self.created = Time.zone.now.utc.iso8601 } FIELD_OF_SCIENCE_SCHEME = "Fields of Science and Technology (FOS)" @@ -2332,6 +2333,12 @@ def update_types ).compact end + def update_schema_version + if current_metadata.present? && current_metadata.valid? + self.schema_version = current_metadata.namespace + end + end + def update_publisher case publisher_before_type_cast when Hash From df9d016bf74dae64abda15bd71a8bf0b7b1005c1 Mon Sep 17 00:00:00 2001 From: Wendel Fabian Chinsamy Date: Fri, 7 Jun 2024 15:25:08 +0200 Subject: [PATCH 2/3] pray to god this is the fix --- app/models/concerns/crosscitable.rb | 2 ++ app/models/doi.rb | 8 +------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/models/concerns/crosscitable.rb b/app/models/concerns/crosscitable.rb index 6b53bb8b8..4f08ebeb1 100644 --- a/app/models/concerns/crosscitable.rb +++ b/app/models/concerns/crosscitable.rb @@ -131,8 +131,10 @@ def update_xml {} end + # this line is changing the schema 3 to schema 4 xml = datacite_xml + write_attribute(:schema_version, "http://datacite.org/schema/kernel-4") write_attribute(:xml, xml) end diff --git a/app/models/doi.rb b/app/models/doi.rb index 9946b8129..459fcfb70 100644 --- a/app/models/doi.rb +++ b/app/models/doi.rb @@ -154,7 +154,6 @@ def validate_publisher_obj?(doi) before_validation :update_identifiers before_validation :update_types before_save :set_defaults, :save_metadata - before_save :update_schema_version before_create { self.created = Time.zone.now.utc.iso8601 } FIELD_OF_SCIENCE_SCHEME = "Fields of Science and Technology (FOS)" @@ -1834,6 +1833,7 @@ def validatable? # update URL in handle system for registered and findable state # providers europ, and DOI registration agencies do their own handle registration, so fetch url from handle system instead def update_url + puts "### doi.rb/update_url" return nil if current_user.nil? || !is_registered_or_findable? if %w(europ).include?(provider_id) || type == "OtherDoi" @@ -2333,12 +2333,6 @@ def update_types ).compact end - def update_schema_version - if current_metadata.present? && current_metadata.valid? - self.schema_version = current_metadata.namespace - end - end - def update_publisher case publisher_before_type_cast when Hash From af8fa9144909183f16dd1f0c6dc7b61bd7ed1d97 Mon Sep 17 00:00:00 2001 From: Wendel Fabian Chinsamy Date: Fri, 7 Jun 2024 16:15:04 +0200 Subject: [PATCH 3/3] remove puts statement --- app/models/doi.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/models/doi.rb b/app/models/doi.rb index 459fcfb70..26a9fb176 100644 --- a/app/models/doi.rb +++ b/app/models/doi.rb @@ -1833,7 +1833,6 @@ def validatable? # update URL in handle system for registered and findable state # providers europ, and DOI registration agencies do their own handle registration, so fetch url from handle system instead def update_url - puts "### doi.rb/update_url" return nil if current_user.nil? || !is_registered_or_findable? if %w(europ).include?(provider_id) || type == "OtherDoi"