bulkrax 9.3.4 → 9.3.5
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/stylesheets/bulkrax/import_export.scss +9 -2
- data/app/controllers/bulkrax/importers_controller.rb +9 -0
- data/app/jobs/bulkrax/export_work_job.rb +1 -3
- data/app/services/bulkrax/sample_csv_service/column_builder.rb +58 -0
- data/app/services/bulkrax/sample_csv_service/column_descriptor.rb +56 -0
- data/app/services/bulkrax/sample_csv_service/csv_builder.rb +82 -0
- data/app/services/bulkrax/sample_csv_service/explanation_builder.rb +51 -0
- data/app/services/bulkrax/sample_csv_service/field_analyzer.rb +54 -0
- data/app/services/bulkrax/sample_csv_service/file_path_generator.rb +16 -0
- data/app/services/bulkrax/sample_csv_service/mapping_manager.rb +36 -0
- data/app/services/bulkrax/sample_csv_service/model_loader.rb +40 -0
- data/app/services/bulkrax/sample_csv_service/row_builder.rb +33 -0
- data/app/services/bulkrax/sample_csv_service/schema_analyzer.rb +69 -0
- data/app/services/bulkrax/sample_csv_service/split_formatter.rb +42 -0
- data/app/services/bulkrax/sample_csv_service/value_determiner.rb +67 -0
- data/app/services/bulkrax/sample_csv_service.rb +78 -0
- data/app/views/bulkrax/entries/_parsed_metadata.html.erb +1 -1
- data/app/views/bulkrax/entries/_raw_metadata.html.erb +1 -1
- data/app/views/bulkrax/entries/show.html.erb +6 -6
- data/app/views/bulkrax/exporters/_form.html.erb +19 -43
- data/app/views/bulkrax/exporters/edit.html.erb +2 -2
- data/app/views/bulkrax/exporters/index.html.erb +5 -5
- data/app/views/bulkrax/exporters/new.html.erb +3 -5
- data/app/views/bulkrax/exporters/show.html.erb +3 -3
- data/app/views/bulkrax/importers/_bagit_fields.html.erb +9 -9
- data/app/views/bulkrax/importers/_browse_everything.html.erb +1 -1
- data/app/views/bulkrax/importers/_csv_fields.html.erb +11 -11
- data/app/views/bulkrax/importers/_edit_form_buttons.html.erb +23 -23
- data/app/views/bulkrax/importers/_edit_item_buttons.html.erb +2 -2
- data/app/views/bulkrax/importers/_file_uploader.html.erb +3 -3
- data/app/views/bulkrax/importers/_form.html.erb +4 -5
- data/app/views/bulkrax/importers/_oai_fields.html.erb +8 -18
- data/app/views/bulkrax/importers/_xml_fields.html.erb +13 -13
- data/app/views/bulkrax/importers/edit.html.erb +2 -2
- data/app/views/bulkrax/importers/index.html.erb +13 -13
- data/app/views/bulkrax/importers/new.html.erb +10 -9
- data/app/views/bulkrax/importers/show.html.erb +7 -7
- data/app/views/bulkrax/importers/upload_corrected_entries.html.erb +6 -6
- data/app/views/bulkrax/shared/_bulkrax_errors.html.erb +11 -11
- data/app/views/bulkrax/shared/_bulkrax_field_mapping.html.erb +3 -3
- data/config/locales/bulkrax.en.yml +235 -2
- data/config/routes.rb +1 -0
- data/lib/bulkrax/version.rb +1 -1
- data/lib/bulkrax.rb +0 -3
- data/lib/tasks/bulkrax_tasks.rake +0 -102
- metadata +15 -2
|
@@ -14,108 +14,6 @@ namespace :bulkrax do
|
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
# Usage example: rails bulkrax:generate_test_csvs['5','100','GenericWork']
|
|
18
|
-
desc 'Generate CSVs with fake data for testing purposes'
|
|
19
|
-
task :generate_test_csvs, [:num_of_csvs, :csv_rows, :record_type] => :environment do |_t, args|
|
|
20
|
-
# NOTE: If this line throws an error, run `gem install faker` inside your Docker container
|
|
21
|
-
require 'faker'
|
|
22
|
-
require 'csv'
|
|
23
|
-
|
|
24
|
-
FileUtils.mkdir_p(Rails.root.join('tmp', 'imports'))
|
|
25
|
-
|
|
26
|
-
IGNORED_PROPERTIES = %w[
|
|
27
|
-
admin_set_id
|
|
28
|
-
alternate_ids
|
|
29
|
-
arkivo_checksum
|
|
30
|
-
created_at
|
|
31
|
-
date_modified
|
|
32
|
-
date_uploaded
|
|
33
|
-
depositor
|
|
34
|
-
embargo
|
|
35
|
-
has_model
|
|
36
|
-
head
|
|
37
|
-
internal_resource
|
|
38
|
-
label
|
|
39
|
-
lease
|
|
40
|
-
member_ids
|
|
41
|
-
member_of_collection_ids
|
|
42
|
-
modified_date
|
|
43
|
-
new_record
|
|
44
|
-
on_behalf_of
|
|
45
|
-
owner
|
|
46
|
-
proxy_depositor
|
|
47
|
-
rendering_ids
|
|
48
|
-
representative_id
|
|
49
|
-
state
|
|
50
|
-
tail
|
|
51
|
-
thumbnail_id
|
|
52
|
-
updated_at
|
|
53
|
-
].freeze
|
|
54
|
-
|
|
55
|
-
BULKRAX_PROPERTIES = %w[
|
|
56
|
-
source_identifier
|
|
57
|
-
model
|
|
58
|
-
].freeze
|
|
59
|
-
|
|
60
|
-
num_of_csvs = args.num_of_csvs.presence&.to_i || 5
|
|
61
|
-
csv_rows = args.csv_rows.presence&.to_i || 100
|
|
62
|
-
record_type = args.record_type.presence&.constantize || GenericWork
|
|
63
|
-
|
|
64
|
-
csv_header = if Hyrax.config.try(:use_valkyrie?)
|
|
65
|
-
record_type.schema.map { |k| k.name.to_s }
|
|
66
|
-
else
|
|
67
|
-
record_type.properties.keys
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
csv_header -= IGNORED_PROPERTIES
|
|
71
|
-
csv_header.unshift(*BULKRAX_PROPERTIES)
|
|
72
|
-
|
|
73
|
-
num_of_csvs.times do |i|
|
|
74
|
-
CSV.open(Rails.root.join('tmp', 'imports', "importer_#{i}.csv"), 'wb') do |csv|
|
|
75
|
-
csv << csv_header
|
|
76
|
-
csv_rows.times do |_index|
|
|
77
|
-
row = []
|
|
78
|
-
csv_header.each do |prop_name|
|
|
79
|
-
row << case prop_name
|
|
80
|
-
when 'id', 'source_identifier'
|
|
81
|
-
Faker::Number.number(digits: 4)
|
|
82
|
-
when 'model'
|
|
83
|
-
record_type.to_s
|
|
84
|
-
when 'rights_statement'
|
|
85
|
-
'http://rightsstatements.org/vocab/CNE/1.0/'
|
|
86
|
-
when 'license'
|
|
87
|
-
'https://creativecommons.org/licenses/by-nc/4.0/'
|
|
88
|
-
when 'based_near'
|
|
89
|
-
# FIXME: Set a proper :based_near value
|
|
90
|
-
nil
|
|
91
|
-
else
|
|
92
|
-
Faker::Lorem.sentence
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
csv << row
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
num_of_csvs.times do |i|
|
|
101
|
-
Bulkrax::Importer.create(
|
|
102
|
-
name: "Generated CSV #{i}",
|
|
103
|
-
admin_set_id: 'admin_set/default',
|
|
104
|
-
user_id: User.find_by(email: 'admin@example.com').id,
|
|
105
|
-
frequency: 'PT0S',
|
|
106
|
-
parser_klass: 'Bulkrax::CsvParser',
|
|
107
|
-
parser_fields: {
|
|
108
|
-
'visibility' => 'open',
|
|
109
|
-
'rights_statement' => '',
|
|
110
|
-
'override_rights_statement' => '0',
|
|
111
|
-
'file_style' => 'Specify a Path on the Server',
|
|
112
|
-
'import_file_path' => "tmp/imports/importer_#{i}.csv",
|
|
113
|
-
'update_files' => false
|
|
114
|
-
}
|
|
115
|
-
)
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
17
|
desc "Remove old exported zips and create new ones with the new file structure"
|
|
120
18
|
task rerun_all_exporters: :environment do
|
|
121
19
|
# delete the existing folders and zip files
|
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: 9.3.
|
|
4
|
+
version: 9.3.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rob Kaufman
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-02-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -418,6 +418,19 @@ files:
|
|
|
418
418
|
- app/parsers/bulkrax/xml_parser.rb
|
|
419
419
|
- app/services/bulkrax/factory_class_finder.rb
|
|
420
420
|
- app/services/bulkrax/remove_relationships_for_importer.rb
|
|
421
|
+
- app/services/bulkrax/sample_csv_service.rb
|
|
422
|
+
- app/services/bulkrax/sample_csv_service/column_builder.rb
|
|
423
|
+
- app/services/bulkrax/sample_csv_service/column_descriptor.rb
|
|
424
|
+
- app/services/bulkrax/sample_csv_service/csv_builder.rb
|
|
425
|
+
- app/services/bulkrax/sample_csv_service/explanation_builder.rb
|
|
426
|
+
- app/services/bulkrax/sample_csv_service/field_analyzer.rb
|
|
427
|
+
- app/services/bulkrax/sample_csv_service/file_path_generator.rb
|
|
428
|
+
- app/services/bulkrax/sample_csv_service/mapping_manager.rb
|
|
429
|
+
- app/services/bulkrax/sample_csv_service/model_loader.rb
|
|
430
|
+
- app/services/bulkrax/sample_csv_service/row_builder.rb
|
|
431
|
+
- app/services/bulkrax/sample_csv_service/schema_analyzer.rb
|
|
432
|
+
- app/services/bulkrax/sample_csv_service/split_formatter.rb
|
|
433
|
+
- app/services/bulkrax/sample_csv_service/value_determiner.rb
|
|
421
434
|
- app/services/hyrax/custom_queries/find_by_source_identifier.rb
|
|
422
435
|
- app/services/wings/custom_queries/find_by_source_identifier.rb
|
|
423
436
|
- app/views/bulkrax/entries/_parsed_metadata.html.erb
|