bulkrax 7.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 +4 -4
- data/app/assets/javascripts/bulkrax/datatables.js +1 -1
- data/app/concerns/loggable.rb +25 -0
- data/app/controllers/bulkrax/exporters_controller.rb +1 -1
- data/app/controllers/bulkrax/importers_controller.rb +2 -1
- data/app/controllers/concerns/bulkrax/datatables_behavior.rb +15 -15
- data/app/factories/bulkrax/object_factory.rb +135 -163
- data/app/factories/bulkrax/object_factory_interface.rb +483 -0
- data/app/factories/bulkrax/valkyrie_object_factory.rb +402 -0
- data/app/factories/bulkrax/valkyrize-hyku.code-workspace +19 -0
- data/app/helpers/bulkrax/importers_helper.rb +1 -1
- data/app/helpers/bulkrax/validation_helper.rb +4 -4
- data/app/jobs/bulkrax/create_relationships_job.rb +27 -16
- data/app/jobs/bulkrax/delete_job.rb +3 -2
- data/app/jobs/bulkrax/download_cloud_file_job.rb +16 -3
- data/app/jobs/bulkrax/import_file_set_job.rb +23 -19
- data/app/jobs/bulkrax/importer_job.rb +18 -2
- data/app/matchers/bulkrax/application_matcher.rb +0 -2
- data/app/models/bulkrax/csv_collection_entry.rb +1 -1
- data/app/models/bulkrax/csv_entry.rb +7 -6
- data/app/models/bulkrax/entry.rb +7 -11
- data/app/models/bulkrax/exporter.rb +2 -2
- data/app/models/bulkrax/importer.rb +1 -3
- data/app/models/bulkrax/oai_entry.rb +0 -3
- data/app/models/bulkrax/oai_set_entry.rb +1 -1
- data/app/models/bulkrax/rdf_collection_entry.rb +1 -1
- data/app/models/bulkrax/rdf_entry.rb +70 -69
- data/app/models/bulkrax/xml_entry.rb +0 -1
- data/app/models/concerns/bulkrax/dynamic_record_lookup.rb +2 -19
- data/app/models/concerns/bulkrax/export_behavior.rb +2 -2
- data/app/models/concerns/bulkrax/file_factory.rb +178 -118
- data/app/models/concerns/bulkrax/file_set_entry_behavior.rb +2 -2
- data/app/models/concerns/bulkrax/has_matchers.rb +39 -25
- data/app/models/concerns/bulkrax/import_behavior.rb +10 -17
- data/app/models/concerns/bulkrax/importer_exporter_behavior.rb +3 -2
- data/app/parsers/bulkrax/application_parser.rb +31 -7
- data/app/parsers/bulkrax/bagit_parser.rb +175 -174
- data/app/parsers/bulkrax/csv_parser.rb +15 -5
- data/app/parsers/bulkrax/oai_dc_parser.rb +18 -0
- data/app/parsers/bulkrax/parser_export_record_set.rb +18 -22
- data/app/parsers/bulkrax/xml_parser.rb +0 -2
- data/app/services/bulkrax/factory_class_finder.rb +2 -0
- data/app/services/bulkrax/remove_relationships_for_importer.rb +3 -1
- data/app/services/hyrax/custom_queries/find_by_source_identifier.rb +50 -0
- data/app/services/wings/custom_queries/find_by_source_identifier.rb +32 -0
- data/app/views/bulkrax/entries/_parsed_metadata.html.erb +2 -2
- data/app/views/bulkrax/entries/_raw_metadata.html.erb +2 -2
- data/app/views/bulkrax/entries/show.html.erb +9 -8
- data/app/views/bulkrax/exporters/edit.html.erb +1 -1
- data/app/views/bulkrax/exporters/new.html.erb +1 -1
- data/app/views/bulkrax/exporters/show.html.erb +4 -2
- data/app/views/bulkrax/importers/_browse_everything.html.erb +2 -2
- data/app/views/bulkrax/importers/_csv_fields.html.erb +1 -1
- data/app/views/bulkrax/importers/edit.html.erb +1 -1
- data/app/views/bulkrax/importers/new.html.erb +1 -1
- data/app/views/bulkrax/importers/show.html.erb +1 -1
- data/app/views/bulkrax/importers/upload_corrected_entries.html.erb +2 -2
- data/app/views/bulkrax/shared/_bulkrax_errors.html.erb +1 -1
- data/app/views/bulkrax/shared/_bulkrax_field_mapping.html.erb +1 -1
- data/config/locales/bulkrax.en.yml +7 -0
- data/db/migrate/20230608153601_add_indices_to_bulkrax.rb +20 -9
- data/db/migrate/20240307053156_add_index_to_metadata_bulkrax_identifier.rb +18 -0
- data/lib/bulkrax/engine.rb +23 -6
- data/lib/bulkrax/version.rb +1 -1
- data/lib/bulkrax.rb +54 -52
- data/lib/generators/bulkrax/templates/config/initializers/bulkrax.rb +2 -0
- data/lib/tasks/bulkrax_tasks.rake +1 -0
- data/lib/tasks/reset.rake +4 -4
- metadata +25 -7
- data/lib/bulkrax/persistence_layer/active_fedora_adapter.rb +0 -27
- data/lib/bulkrax/persistence_layer/valkyrie_adapter.rb +0 -8
- data/lib/bulkrax/persistence_layer.rb +0 -38
data/lib/tasks/reset.rake
CHANGED
@@ -12,8 +12,7 @@ namespace :hyrax do
|
|
12
12
|
desc 'Reset fedora / solr and corresponding database tables w/o clearing other active record tables like users'
|
13
13
|
task works_and_collections: [:environment] do
|
14
14
|
confirm('You are about to delete all works and collections, this is not reversable!')
|
15
|
-
|
16
|
-
ActiveFedora::Cleaner.clean!
|
15
|
+
Bulkrax.object_factory.clean!
|
17
16
|
Hyrax::PermissionTemplateAccess.delete_all
|
18
17
|
Hyrax::PermissionTemplate.delete_all
|
19
18
|
Bulkrax::PendingRelationship.delete_all
|
@@ -33,16 +32,17 @@ namespace :hyrax do
|
|
33
32
|
Mailboxer::Conversation::OptOut.delete_all
|
34
33
|
Mailboxer::Conversation.delete_all
|
35
34
|
AccountElevator.switch!(Site.instance.account) if defined?(AccountElevator)
|
35
|
+
|
36
36
|
# we need to wait till Fedora is done with its cleanup
|
37
37
|
# otherwise creating the admin set will fail
|
38
|
-
while
|
38
|
+
while Bulkrax.object_factory.default_admin_set_or_nil
|
39
39
|
puts 'waiting for delete to finish before reinitializing Fedora'
|
40
40
|
sleep 20
|
41
41
|
end
|
42
42
|
|
43
43
|
Hyrax::CollectionType.find_or_create_default_collection_type
|
44
44
|
Hyrax::CollectionType.find_or_create_admin_set_type
|
45
|
-
|
45
|
+
Bulkrax.object_factory.find_or_create_default_admin_set
|
46
46
|
|
47
47
|
collection_types = Hyrax::CollectionType.all
|
48
48
|
collection_types.each do |c|
|
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:
|
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-03
|
11
|
+
date: 2024-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.4.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.4.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: coderay
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: marcel
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: iso8601
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -320,6 +334,7 @@ files:
|
|
320
334
|
- app/assets/stylesheets/bulkrax/application.css
|
321
335
|
- app/assets/stylesheets/bulkrax/coderay.scss
|
322
336
|
- app/assets/stylesheets/bulkrax/import_export.scss
|
337
|
+
- app/concerns/loggable.rb
|
323
338
|
- app/controllers/bulkrax/application_controller.rb
|
324
339
|
- app/controllers/bulkrax/entries_controller.rb
|
325
340
|
- app/controllers/bulkrax/exporters_controller.rb
|
@@ -328,6 +343,9 @@ files:
|
|
328
343
|
- app/controllers/concerns/bulkrax/datatables_behavior.rb
|
329
344
|
- app/controllers/concerns/bulkrax/download_behavior.rb
|
330
345
|
- app/factories/bulkrax/object_factory.rb
|
346
|
+
- app/factories/bulkrax/object_factory_interface.rb
|
347
|
+
- app/factories/bulkrax/valkyrie_object_factory.rb
|
348
|
+
- app/factories/bulkrax/valkyrize-hyku.code-workspace
|
331
349
|
- app/helpers/bulkrax/application_helper.rb
|
332
350
|
- app/helpers/bulkrax/exporters_helper.rb
|
333
351
|
- app/helpers/bulkrax/importers_helper.rb
|
@@ -395,6 +413,8 @@ files:
|
|
395
413
|
- app/parsers/bulkrax/xml_parser.rb
|
396
414
|
- app/services/bulkrax/factory_class_finder.rb
|
397
415
|
- app/services/bulkrax/remove_relationships_for_importer.rb
|
416
|
+
- app/services/hyrax/custom_queries/find_by_source_identifier.rb
|
417
|
+
- app/services/wings/custom_queries/find_by_source_identifier.rb
|
398
418
|
- app/views/bulkrax/entries/_parsed_metadata.html.erb
|
399
419
|
- app/views/bulkrax/entries/_raw_metadata.html.erb
|
400
420
|
- app/views/bulkrax/entries/show.html.erb
|
@@ -462,12 +482,10 @@ files:
|
|
462
482
|
- db/migrate/20230608153601_add_indices_to_bulkrax.rb
|
463
483
|
- db/migrate/20240208005801_denormalize_status_message.rb
|
464
484
|
- db/migrate/20240209070952_update_identifier_index.rb
|
485
|
+
- db/migrate/20240307053156_add_index_to_metadata_bulkrax_identifier.rb
|
465
486
|
- lib/bulkrax.rb
|
466
487
|
- lib/bulkrax/engine.rb
|
467
488
|
- lib/bulkrax/entry_spec_helper.rb
|
468
|
-
- lib/bulkrax/persistence_layer.rb
|
469
|
-
- lib/bulkrax/persistence_layer/active_fedora_adapter.rb
|
470
|
-
- lib/bulkrax/persistence_layer/valkyrie_adapter.rb
|
471
489
|
- lib/bulkrax/version.rb
|
472
490
|
- lib/generators/bulkrax/install_generator.rb
|
473
491
|
- lib/generators/bulkrax/templates/README
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bulkrax
|
4
|
-
module PersistenceLayer
|
5
|
-
class ActiveFedoraAdapter < AbstractAdapter
|
6
|
-
def self.find(id)
|
7
|
-
ActiveFedora::Base.find(id)
|
8
|
-
rescue ActiveFedora::ObjectNotFoundError => e
|
9
|
-
raise PersistenceLayer::RecordNotFound, e.message
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.query(q, **kwargs)
|
13
|
-
ActiveFedora::SolrService.query(q, **kwargs)
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.clean!
|
17
|
-
super do
|
18
|
-
ActiveFedora::Cleaner.clean!
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.solr_name(field_name)
|
23
|
-
ActiveFedora.index_field_mapper.solr_name(field_name)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bulkrax
|
4
|
-
##
|
5
|
-
# The target data layer where we write and read our imported {Bulkrax::Entry} objects.
|
6
|
-
module PersistenceLayer
|
7
|
-
# We're inheriting from an ActiveRecord exception as that is something we know will be here; and
|
8
|
-
# something that the main_app will be expect to be able to handle.
|
9
|
-
class ObjectNotFoundError < ActiveRecord::RecordNotFound
|
10
|
-
end
|
11
|
-
|
12
|
-
# We're inheriting from an ActiveRecord exception as that is something we know will be here; and
|
13
|
-
# something that the main_app will be expect to be able to handle.
|
14
|
-
class RecordInvalid < ActiveRecord::RecordInvalid
|
15
|
-
end
|
16
|
-
|
17
|
-
class AbstractAdapter
|
18
|
-
# @see ActiveFedora::Base.find
|
19
|
-
def self.find(id)
|
20
|
-
raise NotImplementedError, "#{self}.#{__method__}"
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.solr_name(field_name)
|
24
|
-
raise NotImplementedError, "#{self}.#{__method__}"
|
25
|
-
end
|
26
|
-
|
27
|
-
# @yield when Rails application is running in test environment.
|
28
|
-
def self.clean!
|
29
|
-
return true unless Rails.env.test?
|
30
|
-
yield
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.query(q, **kwargs)
|
34
|
-
raise NotImplementedError, "#{self}.#{__method__}"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|