bulkrax 8.0.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ca767b1e461d5830774bb4d7c49eade799d14298625bdbdccdcbdc0ac997f88
4
- data.tar.gz: b5024ea772132123fcb922fbe183d22950428ea50b7a8b4152c6bd781b94510f
3
+ metadata.gz: 0c787263cc1d6eece0eee9e403e317670cc5d4a86c0a9d08f5ef069ffd0489c9
4
+ data.tar.gz: c52e09a8c5e263e4e641a4bede55acf22d9ea5c254d33c18347f08e535ef3ea6
5
5
  SHA512:
6
- metadata.gz: 91004f88a97054107a3bbbcbe7f3b3dd84226a286df47992c13bfc5fb483c3bfd4aaa9190e08e567258e5105a317a37bba58fa7857ee6c534153ba930b608ad7
7
- data.tar.gz: 89a32c155c3931e486b2d41215942b291eb724c59833a031fdc4815a72d26a2df13b015c1b1e2c0dafd608e58ec481a574e20da7bcf95ed76b3e45c3d5f19287
6
+ metadata.gz: b2abb43af9365afee05600fa60ddb7d3424a76070e29ca5e9a707f94da6abb3d94893c34715a793f2ce8be5882d6e9fa96ede1f807e17e6ccdd4eb9d890a5006
7
+ data.tar.gz: eef45e1ac6d6a06e3eb3dd9a29b37f85b0d79c6b3bc3cd6a57f15935f57e68cc7ae549095bc3e73100a08e957f24c5f6a428f9330f1bea986a8dcb3f535cb6dd
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Loggable
4
+ extend ActiveSupport::Concern
5
+
6
+ def log_created(obj)
7
+ log_action('Created', obj)
8
+ end
9
+
10
+ def log_updated(obj)
11
+ log_action('Updated', obj)
12
+ end
13
+
14
+ def log_deleted_fs(obj)
15
+ msg = "Deleted All Files from #{obj.id}"
16
+ Rails.logger.info("#{msg} (#{Array(obj.attributes[work_identifier]).first})")
17
+ end
18
+
19
+ private
20
+
21
+ def log_action(action, obj)
22
+ msg = "#{action} #{obj.class.model_name.human} #{obj.id}"
23
+ Rails.logger.info("#{msg} (#{Array(obj.attributes[work_identifier]).first})")
24
+ end
25
+ end
@@ -20,6 +20,7 @@ module Bulkrax
20
20
  class ObjectFactoryInterface
21
21
  extend ActiveModel::Callbacks
22
22
  include DynamicRecordLookup
23
+ include Loggable
23
24
 
24
25
  # We're inheriting from an ActiveRecord exception as that is something we
25
26
  # know will be here; and something that the main_app will be expect to be
@@ -224,6 +225,12 @@ module Bulkrax
224
225
  id
225
226
  read_groups
226
227
  visibility
228
+ visibility_during_embargo
229
+ embargo_release_date
230
+ visibility_after_embargo
231
+ visibility_during_lease
232
+ lease_expiration_date
233
+ visibility_after_lease
227
234
  work_members_attributes
228
235
  ]
229
236
 
@@ -398,21 +405,6 @@ module Bulkrax
398
405
  self.class.add_user_to_collection_permissions(**arguments)
399
406
  end
400
407
 
401
- def log_created(obj)
402
- msg = "Created #{klass.model_name.human} #{obj.id}"
403
- Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})")
404
- end
405
-
406
- def log_updated(obj)
407
- msg = "Updated #{klass.model_name.human} #{obj.id}"
408
- Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})")
409
- end
410
-
411
- def log_deleted_fs(obj)
412
- msg = "Deleted All Files from #{obj.id}"
413
- Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})")
414
- end
415
-
416
408
  private
417
409
 
418
410
  def apply_depositor_metadata
@@ -0,0 +1,19 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": "../../../../../hyku"
5
+ },
6
+ {
7
+ "path": "../../../../hyrax"
8
+ },
9
+ {
10
+ "path": "../../.."
11
+ },
12
+ {
13
+ "path": "../../../../iiif_print"
14
+ }
15
+ ],
16
+ "settings": {
17
+ "github.copilot.inlineSuggest.enable": true
18
+ }
19
+ }
@@ -16,7 +16,12 @@ module Bulkrax
16
16
  # e.g. "parents" or "parents_1"
17
17
  parent_identifier = (entry.raw_metadata[entry.related_parents_raw_mapping] || entry.raw_metadata["#{entry.related_parents_raw_mapping}_1"])&.strip
18
18
 
19
- validate_parent!(parent_identifier)
19
+ begin
20
+ validate_parent!(parent_identifier)
21
+ rescue MissingParentError => e
22
+ handle_retry(entry, importer_run_id, e)
23
+ return
24
+ end
20
25
 
21
26
  entry.build
22
27
  if entry.succeeded?
@@ -32,17 +37,6 @@ module Bulkrax
32
37
  entry.save!
33
38
  entry.importer.current_run = ImporterRun.find(importer_run_id)
34
39
  entry.importer.record_status
35
-
36
- rescue MissingParentError => e
37
- # try waiting for the parent record to be created
38
- entry.import_attempts += 1
39
- entry.save!
40
- if entry.import_attempts < 5
41
- ImportFileSetJob.set(wait: (entry.import_attempts + 1).minutes).perform_later(entry_id, importer_run_id)
42
- else
43
- ImporterRun.decrement_counter(:enqueued_records, importer_run_id) # rubocop:disable Rails/SkipsModelValidations
44
- entry.set_status_info(e)
45
- end
46
40
  end
47
41
 
48
42
  private
@@ -54,14 +48,9 @@ module Bulkrax
54
48
  return if parent_identifier.blank?
55
49
 
56
50
  find_parent_record(parent_identifier)
57
- check_parent_exists!(parent_identifier)
58
51
  check_parent_is_a_work!(parent_identifier)
59
52
  end
60
53
 
61
- def check_parent_exists!(parent_identifier)
62
- raise MissingParentError, %(Unable to find a record with the identifier "#{parent_identifier}") if parent_record.nil?
63
- end
64
-
65
54
  def check_parent_is_a_work!(parent_identifier)
66
55
  case parent_record
67
56
  when Bulkrax.collection_model_class, Bulkrax.file_model_class
@@ -72,6 +61,18 @@ module Bulkrax
72
61
 
73
62
  def find_parent_record(parent_identifier)
74
63
  _, @parent_record = find_record(parent_identifier, importer_run_id)
64
+ raise MissingParentError, %(Unable to find a record with the identifier "#{parent_identifier}") unless parent_record
65
+ end
66
+
67
+ def handle_retry(entry, importer_run_id, e)
68
+ entry.import_attempts += 1
69
+ entry.save!
70
+ if entry.import_attempts < 5
71
+ ImportFileSetJob.set(wait: (entry.import_attempts + 1).minutes).perform_later(entry.id, importer_run_id)
72
+ else
73
+ ImporterRun.decrement_counter(:enqueued_records, importer_run_id) # rubocop:disable Rails/SkipsModelValidations
74
+ entry.set_status_info(e)
75
+ end
75
76
  end
76
77
  end
77
78
  end
@@ -32,6 +32,8 @@ module Bulkrax
32
32
  end
33
33
 
34
34
  class InnerWorkings
35
+ include Loggable
36
+
35
37
  def initialize(object_factory:)
36
38
  @object_factory = object_factory
37
39
  end
@@ -119,7 +121,7 @@ module Bulkrax
119
121
  def destroy_existing_files
120
122
  return unless object.present? && object.file_sets.present?
121
123
  object.file_sets.each do |fs|
122
- Hyrax::Actors::FileSetActor.new(fs, @user).destroy
124
+ Hyrax::Actors::FileSetActor.new(fs, user).destroy
123
125
  end
124
126
  @object = object.reload
125
127
  log_deleted_fs(object)
@@ -155,6 +157,8 @@ module Bulkrax
155
157
  end
156
158
 
157
159
  def ordered_file_sets
160
+ return [] if object.blank?
161
+
158
162
  Bulkrax.object_factory.ordered_file_sets_for(object)
159
163
  end
160
164
 
@@ -148,7 +148,18 @@ module Bulkrax
148
148
  end
149
149
 
150
150
  def fields_that_are_always_multiple
151
- %w[id delete model visibility]
151
+ @fields_that_are_always_multiple = %w[
152
+ id
153
+ delete
154
+ model
155
+ visibility
156
+ visibility_during_embargo
157
+ embargo_release_date
158
+ visibility_after_embargo
159
+ visibility_during_lease
160
+ lease_expiration_date
161
+ visibility_after_lease
162
+ ]
152
163
  end
153
164
 
154
165
  def fields_that_are_always_singular
@@ -1,4 +1,4 @@
1
- class AddIndexToMetadataBulkraxIdentifier < ActiveRecord::Migration[6.1]
1
+ class AddIndexToMetadataBulkraxIdentifier < ActiveRecord::Migration[5.2]
2
2
  def up
3
3
  return unless table_exists?(:orm_resources)
4
4
  return if index_exists?(:orm_resources, "(((metadata -> 'bulkrax_identifier'::text) ->> 0))", name: 'index_on_bulkrax_identifier')
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bulkrax
4
- VERSION = '8.0.0'
4
+ VERSION = '8.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulkrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Kaufman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-02 00:00:00.000000000 Z
11
+ date: 2024-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -334,6 +334,7 @@ files:
334
334
  - app/assets/stylesheets/bulkrax/application.css
335
335
  - app/assets/stylesheets/bulkrax/coderay.scss
336
336
  - app/assets/stylesheets/bulkrax/import_export.scss
337
+ - app/concerns/loggable.rb
337
338
  - app/controllers/bulkrax/application_controller.rb
338
339
  - app/controllers/bulkrax/entries_controller.rb
339
340
  - app/controllers/bulkrax/exporters_controller.rb
@@ -344,6 +345,7 @@ files:
344
345
  - app/factories/bulkrax/object_factory.rb
345
346
  - app/factories/bulkrax/object_factory_interface.rb
346
347
  - app/factories/bulkrax/valkyrie_object_factory.rb
348
+ - app/factories/bulkrax/valkyrize-hyku.code-workspace
347
349
  - app/helpers/bulkrax/application_helper.rb
348
350
  - app/helpers/bulkrax/exporters_helper.rb
349
351
  - app/helpers/bulkrax/importers_helper.rb
@@ -513,7 +515,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
513
515
  - !ruby/object:Gem::Version
514
516
  version: '0'
515
517
  requirements: []
516
- rubygems_version: 3.5.5
518
+ rubygems_version: 3.4.10
517
519
  signing_key:
518
520
  specification_version: 4
519
521
  summary: Import and export tool for Hyrax and Hyku