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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/bulkrax/import_export.scss +9 -2
  3. data/app/controllers/bulkrax/importers_controller.rb +9 -0
  4. data/app/jobs/bulkrax/export_work_job.rb +1 -3
  5. data/app/services/bulkrax/sample_csv_service/column_builder.rb +58 -0
  6. data/app/services/bulkrax/sample_csv_service/column_descriptor.rb +56 -0
  7. data/app/services/bulkrax/sample_csv_service/csv_builder.rb +82 -0
  8. data/app/services/bulkrax/sample_csv_service/explanation_builder.rb +51 -0
  9. data/app/services/bulkrax/sample_csv_service/field_analyzer.rb +54 -0
  10. data/app/services/bulkrax/sample_csv_service/file_path_generator.rb +16 -0
  11. data/app/services/bulkrax/sample_csv_service/mapping_manager.rb +36 -0
  12. data/app/services/bulkrax/sample_csv_service/model_loader.rb +40 -0
  13. data/app/services/bulkrax/sample_csv_service/row_builder.rb +33 -0
  14. data/app/services/bulkrax/sample_csv_service/schema_analyzer.rb +69 -0
  15. data/app/services/bulkrax/sample_csv_service/split_formatter.rb +42 -0
  16. data/app/services/bulkrax/sample_csv_service/value_determiner.rb +67 -0
  17. data/app/services/bulkrax/sample_csv_service.rb +78 -0
  18. data/app/views/bulkrax/entries/_parsed_metadata.html.erb +1 -1
  19. data/app/views/bulkrax/entries/_raw_metadata.html.erb +1 -1
  20. data/app/views/bulkrax/entries/show.html.erb +6 -6
  21. data/app/views/bulkrax/exporters/_form.html.erb +19 -43
  22. data/app/views/bulkrax/exporters/edit.html.erb +2 -2
  23. data/app/views/bulkrax/exporters/index.html.erb +5 -5
  24. data/app/views/bulkrax/exporters/new.html.erb +3 -5
  25. data/app/views/bulkrax/exporters/show.html.erb +3 -3
  26. data/app/views/bulkrax/importers/_bagit_fields.html.erb +9 -9
  27. data/app/views/bulkrax/importers/_browse_everything.html.erb +1 -1
  28. data/app/views/bulkrax/importers/_csv_fields.html.erb +11 -11
  29. data/app/views/bulkrax/importers/_edit_form_buttons.html.erb +23 -23
  30. data/app/views/bulkrax/importers/_edit_item_buttons.html.erb +2 -2
  31. data/app/views/bulkrax/importers/_file_uploader.html.erb +3 -3
  32. data/app/views/bulkrax/importers/_form.html.erb +4 -5
  33. data/app/views/bulkrax/importers/_oai_fields.html.erb +8 -18
  34. data/app/views/bulkrax/importers/_xml_fields.html.erb +13 -13
  35. data/app/views/bulkrax/importers/edit.html.erb +2 -2
  36. data/app/views/bulkrax/importers/index.html.erb +13 -13
  37. data/app/views/bulkrax/importers/new.html.erb +10 -9
  38. data/app/views/bulkrax/importers/show.html.erb +7 -7
  39. data/app/views/bulkrax/importers/upload_corrected_entries.html.erb +6 -6
  40. data/app/views/bulkrax/shared/_bulkrax_errors.html.erb +11 -11
  41. data/app/views/bulkrax/shared/_bulkrax_field_mapping.html.erb +3 -3
  42. data/config/locales/bulkrax.en.yml +235 -2
  43. data/config/routes.rb +1 -0
  44. data/lib/bulkrax/version.rb +1 -1
  45. data/lib/bulkrax.rb +0 -3
  46. data/lib/tasks/bulkrax_tasks.rake +0 -102
  47. 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
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-01-15 00:00:00.000000000 Z
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