bulkrax 8.0.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
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