hyrax 3.3.0 → 3.4.2
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/.circleci/config.yml +26 -17
- data/.dassie/.env +2 -1
- data/.dassie/Gemfile +1 -1
- data/.dassie/app/forms/collection_resource_form.rb +8 -0
- data/.dassie/app/indexers/collection_resource_indexer.rb +8 -0
- data/.dassie/app/models/collection_resource.rb +35 -0
- data/.dassie/config/initializers/file_services.rb +4 -0
- data/.dassie/config/initializers/hyrax.rb +12 -1
- data/.dassie/config/metadata/collection_resource.yaml +23 -0
- data/.dassie/db/seeds.rb +74 -17
- data/.dassie/spec/forms/collection_resource_form_spec.rb +13 -0
- data/.dassie/spec/indexers/collection_resource_indexer_spec.rb +14 -0
- data/.dassie/spec/models/collection_resource_spec.rb +13 -0
- data/.github/release.yml +26 -0
- data/.gitignore +3 -0
- data/.regen +1 -1
- data/.rubocop.yml +1 -1
- data/.rubocop_fixme.yml +22 -3
- data/CONTAINERS.md +18 -13
- data/Dockerfile +4 -3
- data/app/actors/hyrax/actors/file_actor.rb +6 -4
- data/app/actors/hyrax/actors/transfer_request_actor.rb +3 -7
- data/app/assets/javascripts/hyrax/analytics_events.js +8 -2
- data/app/assets/javascripts/hyrax/autocomplete/linked_data.es6 +1 -3
- data/app/assets/javascripts/hyrax/collections_v2.es6 +13 -0
- data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +1 -3
- data/app/controllers/concerns/hyrax/controller.rb +21 -0
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +83 -59
- data/app/controllers/hyrax/admin/admin_sets_controller.rb +105 -19
- data/app/controllers/hyrax/admin/permission_template_accesses_controller.rb +12 -19
- data/app/controllers/hyrax/batch_edits_controller.rb +12 -3
- data/app/controllers/hyrax/batch_uploads_controller.rb +4 -0
- data/app/controllers/hyrax/citations_controller.rb +1 -1
- data/app/controllers/hyrax/dashboard/collections_controller.rb +176 -83
- data/app/controllers/hyrax/single_use_links_viewer_controller.rb +1 -1
- data/app/forms/hyrax/forms/administrative_set_form.rb +19 -1
- data/app/forms/hyrax/forms/batch_edit_form.rb +1 -1
- data/app/forms/hyrax/forms/collection_form.rb +1 -1
- data/app/forms/hyrax/forms/dashboard/nest_collection_form.rb +21 -6
- data/app/forms/hyrax/forms/pcdm_collection_form.rb +30 -2
- data/app/forms/hyrax/forms/permission_template_form.rb +17 -9
- data/app/forms/hyrax/forms/resource_form.rb +23 -5
- data/app/forms/hyrax/forms/widgets/admin_set_visibility.rb +1 -1
- data/app/helpers/hyrax/collections_helper.rb +14 -0
- data/app/helpers/hyrax/membership_helper.rb +1 -1
- data/app/helpers/hyrax/trophy_helper.rb +1 -1
- data/app/helpers/hyrax/url_helper.rb +1 -1
- data/app/indexers/hyrax/administrative_set_indexer.rb +8 -2
- data/app/indexers/hyrax/deep_indexing_service.rb +1 -1
- data/app/indexers/hyrax/file_set_indexer.rb +1 -0
- data/app/indexers/hyrax/pcdm_collection_indexer.rb +3 -2
- data/app/indexers/hyrax/thumbnail_indexer.rb +31 -0
- data/app/indexers/hyrax/valkyrie_file_set_indexer.rb +6 -6
- data/app/indexers/hyrax/valkyrie_indexer.rb +4 -2
- data/app/indexers/hyrax/valkyrie_work_indexer.rb +13 -0
- data/app/inputs/controlled_vocabulary_input.rb +2 -0
- data/app/jobs/change_depositor_event_job.rb +47 -0
- data/app/jobs/characterize_job.rb +43 -3
- data/app/jobs/concerns/hyrax/members_permission_job_behavior.rb +1 -1
- data/app/jobs/content_depositor_change_event_job.rb +2 -1
- data/app/jobs/hyrax/propagate_change_depositor_job.rb +32 -0
- data/app/jobs/import_url_job.rb +4 -6
- data/app/jobs/inherit_permissions_job.rb +1 -1
- data/app/jobs/valkyrie_create_derivatives_job.rb +25 -0
- data/app/jobs/valkyrie_ingest_job.rb +41 -35
- data/app/models/admin_set.rb +10 -2
- data/app/models/collection_branding_info.rb +8 -6
- data/app/models/concerns/hyrax/collection_behavior.rb +3 -3
- data/app/models/concerns/hyrax/file_set/characterization.rb +7 -1
- data/app/models/concerns/hyrax/solr_document/metadata.rb +1 -0
- data/app/models/concerns/hyrax/solr_document_behavior.rb +9 -3
- data/app/models/concerns/hyrax/user.rb +11 -0
- data/app/models/concerns/hyrax/work_behavior.rb +1 -1
- data/app/models/featured_work_list.rb +0 -1
- data/app/models/hyrax/administrative_set.rb +36 -1
- data/app/models/hyrax/collection_type.rb +2 -2
- data/app/models/hyrax/file_metadata.rb +37 -3
- data/app/models/hyrax/file_set.rb +43 -4
- data/app/models/hyrax/group.rb +19 -0
- data/app/models/hyrax/pcdm_collection.rb +56 -1
- data/app/models/hyrax/permission_template.rb +11 -5
- data/app/models/hyrax/work.rb +91 -0
- data/app/models/job_io_wrapper.rb +1 -1
- data/app/models/proxy_deposit_request.rb +1 -1
- data/app/presenters/hyrax/admin_set_presenter.rb +2 -2
- data/app/presenters/hyrax/member_presenter_factory.rb +2 -4
- data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -2
- data/app/presenters/hyrax/work_show_presenter.rb +10 -6
- data/app/search_builders/hyrax/dashboard/collections_search_builder.rb +2 -2
- data/app/search_builders/hyrax/dashboard/managed_search_filters.rb +44 -4
- data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +2 -2
- data/app/search_builders/hyrax/my/collections_search_builder.rb +11 -4
- data/app/services/hyrax/access_control_list.rb +20 -6
- data/app/services/hyrax/adapters/nesting_index_adapter.rb +3 -3
- data/app/services/hyrax/admin_set_create_service.rb +21 -37
- data/app/services/hyrax/change_content_depositor_service.rb +2 -2
- data/app/services/hyrax/change_depositor_service.rb +70 -0
- data/app/services/hyrax/characterization/valkyrie_characterization_service.rb +4 -6
- data/app/services/hyrax/collections/collection_member_service.rb +3 -5
- data/app/services/hyrax/collections/nested_collection_query_service.rb +24 -12
- data/app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb +45 -0
- data/app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb +7 -2
- data/app/services/hyrax/custom_queries/navigators/parent_work_navigator.rb +54 -0
- data/app/services/hyrax/default_middleware_stack.rb +3 -0
- data/app/services/hyrax/file_set_derivatives_service.rb +21 -2
- data/app/services/hyrax/file_set_type_service.rb +2 -5
- data/app/services/hyrax/listeners/file_metadata_listener.rb +31 -1
- data/app/services/hyrax/listeners/member_cleanup_listener.rb +27 -11
- data/app/services/hyrax/listeners/metadata_index_listener.rb +39 -0
- data/app/services/hyrax/listeners/proxy_deposit_listener.rb +14 -8
- data/app/services/hyrax/location_service.rb +33 -0
- data/app/services/hyrax/multiple_membership_checker.rb +46 -1
- data/app/services/hyrax/resource_visibility_propagator.rb +1 -1
- data/app/services/hyrax/simple_schema_loader.rb +5 -1
- data/app/services/hyrax/solr_query_service.rb +12 -7
- data/app/services/hyrax/thumbnail_path_service.rb +1 -1
- data/app/services/hyrax/valkyrie_persist_derivatives.rb +50 -0
- data/app/services/hyrax/valkyrie_upload.rb +94 -0
- data/app/services/hyrax/work_uploads_handler.rb +0 -10
- data/app/services/hyrax/workflow/workflow_importer.rb +7 -9
- data/app/services/hyrax/workflow/workflow_schema.rb +3 -5
- data/app/strategies/hyrax/strategies/yaml_strategy.rb +4 -6
- data/app/uploaders/hyrax/uploaded_file_uploader.rb +4 -4
- data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +29 -0
- data/app/utils/hyrax/data_destroyers/collection_types_destroyer.rb +26 -0
- data/app/utils/hyrax/data_destroyers/default_admin_set_id_cache_destroyer.rb +26 -0
- data/app/utils/hyrax/data_destroyers/featured_works_destroyer.rb +27 -0
- data/app/utils/hyrax/data_destroyers/permission_templates_destroyer.rb +30 -0
- data/app/utils/hyrax/data_destroyers/repository_metadata_destroyer.rb +42 -0
- data/app/utils/hyrax/data_destroyers/stats_destroyer.rb +33 -0
- data/app/utils/hyrax/data_maintenance.rb +51 -0
- data/app/utils/hyrax/required_data_seeder.rb +21 -0
- data/app/utils/hyrax/required_data_seeders/collection_seeder.rb +26 -0
- data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +36 -0
- data/app/utils/hyrax/test_data_seeder.rb +24 -0
- data/app/utils/hyrax/test_data_seeders/collection_seeder.rb +91 -0
- data/app/utils/hyrax/test_data_seeders/collection_type_seeder.rb +72 -0
- data/app/utils/hyrax/test_data_seeders/user_seeder.rb +52 -0
- data/app/validators/hyrax/collection_membership_validator.rb +39 -0
- data/app/views/catalog/_index_header_list_default.html.erb +8 -1
- data/app/views/catalog/_thumbnail_list_default.html.erb +8 -3
- data/app/views/collections/edit_fields/_based_near.html.erb +7 -7
- data/app/views/hyrax/admin/admin_sets/_form_participant_table.html.erb +2 -2
- data/app/views/hyrax/admin/admin_sets/_form_participants.html.erb +2 -2
- data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +2 -2
- data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +1 -1
- data/app/views/hyrax/admin/collection_types/index.html.erb +1 -1
- data/app/views/hyrax/base/_form.html.erb +1 -1
- data/app/views/hyrax/base/_form_child_work_relationships.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_default_group.html.erb +2 -2
- data/app/views/hyrax/dashboard/collections/_form.html.erb +24 -17
- data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +1 -0
- data/app/views/hyrax/dashboard/collections/_form_discovery.html.erb +6 -3
- data/app/views/hyrax/dashboard/collections/_form_share.html.erb +2 -2
- data/app/views/hyrax/dashboard/collections/_form_share_table.html.erb +3 -3
- data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +2 -2
- data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +1 -1
- data/app/views/hyrax/dashboard/works/_default_group.html.erb +1 -1
- data/app/views/hyrax/dashboard/works/_list_works.html.erb +1 -1
- data/app/views/hyrax/file_sets/_actions.html.erb +2 -2
- data/app/views/hyrax/my/_facet_pagination.html.erb +12 -9
- data/app/views/hyrax/my/_work_action_menu.html.erb +8 -9
- data/app/views/hyrax/my/collections/_default_group.html.erb +2 -2
- data/app/views/hyrax/my/collections/_list_collections.html.erb +2 -2
- data/app/views/hyrax/my/collections/index.html.erb +3 -2
- data/app/views/hyrax/my/works/_default_group.html.erb +1 -1
- data/app/views/hyrax/my/works/_list_works.html.erb +1 -2
- data/app/views/hyrax/my/works/_tabs.html.erb +6 -1
- data/app/views/hyrax/my/works/index.html.erb +4 -2
- data/chart/hyrax/Chart.yaml +11 -7
- data/chart/hyrax/README.md +22 -1
- data/chart/hyrax/templates/_helpers.tpl +4 -0
- data/chart/hyrax/templates/cron-embargo.yaml +5 -0
- data/chart/hyrax/templates/cron-lease.yaml +5 -0
- data/chart/hyrax/templates/deployment-worker.yaml +11 -0
- data/chart/hyrax/templates/ingress.yaml +7 -6
- data/chart/hyrax/values.yaml +152 -0
- data/config/features.rb +48 -50
- data/config/initializers/listeners.rb +0 -1
- data/config/initializers/{valkryrie_storage.rb → storage_adapter_initializer.rb} +5 -0
- data/config/locales/hyrax.de.yml +18 -17
- data/config/locales/hyrax.en.yml +30 -28
- data/config/locales/hyrax.es.yml +10 -9
- data/config/locales/hyrax.fr.yml +2 -1
- data/config/locales/hyrax.it.yml +3 -2
- data/config/locales/hyrax.pt-BR.yml +2 -1
- data/config/locales/hyrax.zh.yml +2 -1
- data/config/metadata/basic_metadata.yaml +2 -0
- data/config/metadata/core_metadata.yaml +1 -1
- data/docker-compose.yml +47 -42
- data/documentation/developing-your-hyrax-based-app.md +1 -1
- data/documentation/legacyREADME.md +1 -1
- data/hyrax.gemspec +5 -3
- data/lib/generators/hyrax/collection_resource/USAGE +20 -0
- data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +133 -0
- data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +34 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +7 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_form_spec.rb.erb +13 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +7 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer_spec.rb.erb +13 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_metadata.yaml +22 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_spec.rb.erb +12 -0
- data/lib/generators/hyrax/install_generator.rb +9 -0
- data/lib/hyrax/administrative_set_name.rb +18 -0
- data/lib/hyrax/collection_name.rb +2 -0
- data/lib/hyrax/configuration.rb +22 -0
- data/lib/hyrax/controlled_vocabularies/location.rb +9 -2
- data/lib/hyrax/controlled_vocabularies/resource_label_caching.rb +42 -0
- data/lib/hyrax/controlled_vocabularies.rb +1 -0
- data/lib/hyrax/publisher.rb +49 -0
- data/lib/hyrax/schema.rb +16 -13
- data/lib/hyrax/specs/capybara.rb +1 -1
- data/lib/hyrax/specs/shared_specs/hydra_works.rb +11 -5
- data/lib/hyrax/specs/shared_specs/indexers.rb +117 -3
- data/lib/hyrax/transactions/admin_set_create.rb +2 -1
- data/lib/hyrax/transactions/admin_set_destroy.rb +22 -0
- data/lib/hyrax/transactions/admin_set_update.rb +21 -0
- data/lib/hyrax/transactions/collection_destroy.rb +22 -0
- data/lib/hyrax/transactions/collection_update.rb +5 -2
- data/lib/hyrax/transactions/container.rb +97 -23
- data/lib/hyrax/transactions/create_work.rb +3 -0
- data/lib/hyrax/transactions/destroy_work.rb +3 -0
- data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +2 -0
- data/lib/hyrax/transactions/steps/apply_permission_template.rb +2 -0
- data/lib/hyrax/transactions/steps/apply_visibility.rb +2 -0
- data/lib/hyrax/transactions/steps/change_depositor.rb +46 -0
- data/lib/hyrax/transactions/steps/check_for_empty_admin_set.rb +36 -0
- data/lib/hyrax/transactions/steps/delete_access_control.rb +32 -0
- data/lib/hyrax/transactions/steps/delete_resource.rb +19 -3
- data/lib/hyrax/transactions/steps/destroy_work.rb +3 -1
- data/lib/hyrax/transactions/steps/ensure_permission_template.rb +2 -0
- data/lib/hyrax/transactions/steps/save.rb +24 -6
- data/lib/hyrax/transactions/steps/save_access_control.rb +2 -2
- data/lib/hyrax/transactions/steps/save_collection_banner.rb +59 -0
- data/lib/hyrax/transactions/steps/save_collection_logo.rb +109 -0
- data/lib/hyrax/transactions/steps/save_work.rb +3 -0
- data/lib/hyrax/transactions/steps/set_user_as_creator.rb +41 -0
- data/lib/hyrax/transactions/steps/update_work_members.rb +51 -0
- data/lib/hyrax/transactions/update_work.rb +4 -3
- data/lib/hyrax/transactions/work_create.rb +1 -1
- data/lib/hyrax/transactions/work_destroy.rb +2 -1
- data/lib/hyrax/transactions/work_update.rb +19 -0
- data/lib/hyrax/version.rb +1 -1
- data/lib/wings/active_fedora_converter/file_metadata_node.rb +48 -0
- data/lib/wings/active_fedora_converter/instance_builder.rb +68 -0
- data/lib/wings/active_fedora_converter.rb +3 -3
- data/lib/wings/attribute_transformer.rb +5 -1
- data/lib/wings/services/custom_queries/find_file_metadata.rb +19 -8
- data/lib/wings/setup.rb +3 -1
- data/lib/wings/valkyrie/persister.rb +2 -0
- data/lib/wings/valkyrie/query_service.rb +6 -7
- data/lib/wings/valkyrie/storage.rb +7 -1
- data/template.rb +1 -1
- metadata +99 -12
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Hyrax::ValkyrieUpload
|
|
4
|
+
# @param [IO] io
|
|
5
|
+
# @param [String] filename
|
|
6
|
+
# @param [Hyrax::FileSet] file_set
|
|
7
|
+
# @param [RDF::URI] use
|
|
8
|
+
# @param [User] user
|
|
9
|
+
#
|
|
10
|
+
# @see Hyrax::FileMetadata::Use
|
|
11
|
+
# @return [Hyrax::FileMetadata] the metadata representing the uploaded file
|
|
12
|
+
# rubocop:disable Metrics/MethodLength
|
|
13
|
+
# rubocop:disable Metrics/ParameterLists
|
|
14
|
+
def self.file(
|
|
15
|
+
filename:,
|
|
16
|
+
file_set:,
|
|
17
|
+
io:,
|
|
18
|
+
storage_adapter: Hyrax.storage_adapter,
|
|
19
|
+
use: Hyrax::FileMetadata::Use::ORIGINAL_FILE,
|
|
20
|
+
user: nil
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
streamfile = storage_adapter.upload(
|
|
24
|
+
file: io,
|
|
25
|
+
original_filename: filename,
|
|
26
|
+
resource: file_set,
|
|
27
|
+
use: use
|
|
28
|
+
)
|
|
29
|
+
io.close
|
|
30
|
+
|
|
31
|
+
file_metadata = Hyrax::FileMetadata(streamfile)
|
|
32
|
+
file_metadata.file_set_id = file_set.id
|
|
33
|
+
|
|
34
|
+
case use
|
|
35
|
+
when Hyrax::FileMetadata::Use::ORIGINAL_FILE
|
|
36
|
+
# Set file set label.
|
|
37
|
+
reset_title = file_set.title.first == file_set.label
|
|
38
|
+
# set title to label if that's how it was before this characterization
|
|
39
|
+
file_set.title = file_metadata.original_filename if reset_title
|
|
40
|
+
# always set the label to the original_name
|
|
41
|
+
file_set.label = file_metadata.original_filename
|
|
42
|
+
when Hyrax::FileMetadata::Use::THUMBNAIL
|
|
43
|
+
# TODO: the parent work's thumbnail_id remains incorrect (it's set to the
|
|
44
|
+
# FileSet ID, rather than the ID of this thumbnail FileMetadata; but
|
|
45
|
+
# trying to update the parent attributes here doesn't seem to stick
|
|
46
|
+
file_set.thumbnail_id = file_metadata.id
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
saved_metadata = Hyrax.persister.save(resource: file_metadata)
|
|
50
|
+
Hyrax.publisher.publish("object.file.uploaded", metadata: saved_metadata)
|
|
51
|
+
|
|
52
|
+
add_file_to_file_set(file_set: file_set,
|
|
53
|
+
file_metadata: saved_metadata,
|
|
54
|
+
user: user)
|
|
55
|
+
|
|
56
|
+
Hyrax.publisher.publish('file.metadata.updated', metadata: saved_metadata, user: user)
|
|
57
|
+
|
|
58
|
+
saved_metadata
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @param [Hyrax::FileSet] file_set the file set to add to
|
|
62
|
+
# @param [Hyrax::FileMetadata] file_metadata the metadata object representing
|
|
63
|
+
# the file to add
|
|
64
|
+
# @param [::User] user the user performing the add
|
|
65
|
+
#
|
|
66
|
+
# @return [Hyrax::FileSet] updated file set
|
|
67
|
+
def self.add_file_to_file_set(file_set:, file_metadata:, user:)
|
|
68
|
+
file_set.file_ids << file_metadata.id
|
|
69
|
+
set_file_use_ids(file_set, file_metadata)
|
|
70
|
+
|
|
71
|
+
Hyrax.persister.save(resource: file_set)
|
|
72
|
+
Hyrax.publisher.publish('object.membership.updated', object: file_set, user: user)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @api private
|
|
76
|
+
# @param [Hyrax::FileSet] file_set the file set to add to
|
|
77
|
+
# @param [Hyrax::FileMetadata] file_metadata the metadata object representing
|
|
78
|
+
# the file to add
|
|
79
|
+
# @return [void]
|
|
80
|
+
def self.set_file_use_ids(file_set, file_metadata)
|
|
81
|
+
file_metadata.type.each do |type|
|
|
82
|
+
case type
|
|
83
|
+
when Hyrax::FileMetadata::Use::ORIGINAL_FILE
|
|
84
|
+
file_set.original_file_id = file_metadata.id
|
|
85
|
+
when Hyrax::FileMetadata::Use::THUMBNAIL
|
|
86
|
+
file_set.thumbnail_id = file_metadata.id
|
|
87
|
+
when Hyrax::FileMetadata::Use::EXTRACTED_TEXT
|
|
88
|
+
file_set.extracted_text_id = file_metadata.id
|
|
89
|
+
else
|
|
90
|
+
Rails.logger.warn "Unknown file use #{file_metadata.type} specified for #{file_metadata.file_identifier}"
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -116,9 +116,6 @@ module Hyrax
|
|
|
116
116
|
|
|
117
117
|
ValkyrieIngestJob.perform_later(file)
|
|
118
118
|
|
|
119
|
-
# this triggers the re-index
|
|
120
|
-
Hyrax.publisher.publish('object.metadata.updated', object: file_set, user: file.user)
|
|
121
|
-
|
|
122
119
|
{ file_set: file_set, user: file.user }
|
|
123
120
|
end
|
|
124
121
|
|
|
@@ -163,13 +160,6 @@ module Hyrax
|
|
|
163
160
|
@target_permissions ||= Hyrax::AccessControlList.new(resource: work)
|
|
164
161
|
end
|
|
165
162
|
|
|
166
|
-
##
|
|
167
|
-
# @api private
|
|
168
|
-
# @return [JobIoWrapper]
|
|
169
|
-
def wrap_file(file, file_set)
|
|
170
|
-
JobIoWrapper.create_with_varied_file_handling!(user: file.user, file: file, relation: :original_file, file_set: file_set)
|
|
171
|
-
end
|
|
172
|
-
|
|
173
163
|
##
|
|
174
164
|
# @api private
|
|
175
165
|
#
|
|
@@ -128,16 +128,14 @@ module Hyrax
|
|
|
128
128
|
def call
|
|
129
129
|
self.errors = []
|
|
130
130
|
Array.wrap(data.fetch(:workflows)).map do |configuration|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
errors << error
|
|
138
|
-
end
|
|
139
|
-
Sipity::Workflow.find_by(name: configuration[:name])
|
|
131
|
+
find_or_create_from(configuration: configuration)
|
|
132
|
+
rescue InvalidStateRemovalException => e
|
|
133
|
+
e.states.each do |state|
|
|
134
|
+
error = I18n.t('hyrax.workflow.load.state_error', workflow_name: state.workflow.name, state_name: state.name, entity_count: state.entities.count)
|
|
135
|
+
Rails.logger.error(error)
|
|
136
|
+
errors << error
|
|
140
137
|
end
|
|
138
|
+
Sipity::Workflow.find_by(name: configuration[:name])
|
|
141
139
|
end
|
|
142
140
|
end
|
|
143
141
|
|
|
@@ -34,12 +34,10 @@ module Hyrax::Strategies
|
|
|
34
34
|
|
|
35
35
|
def yaml_file
|
|
36
36
|
@yaml_file ||=
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{}
|
|
42
|
-
end
|
|
37
|
+
if File.exist?(@config_file)
|
|
38
|
+
YAML.load_file(@config_file)
|
|
39
|
+
else
|
|
40
|
+
{}
|
|
43
41
|
end
|
|
44
42
|
end
|
|
45
43
|
end
|
|
@@ -4,21 +4,21 @@ module Hyrax
|
|
|
4
4
|
# Override the directory where uploaded files will be stored.
|
|
5
5
|
# This is a sensible default for uploaders that are meant to be mounted:
|
|
6
6
|
def store_dir
|
|
7
|
-
configured_upload_path
|
|
7
|
+
(configured_upload_path / model.class.to_s.underscore / mounted_as.to_s / model.id.to_s).to_s
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def cache_dir
|
|
11
|
-
configured_cache_path
|
|
11
|
+
(configured_cache_path / model.class.to_s.underscore / mounted_as.to_s / model.id.to_s).to_s
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
private
|
|
15
15
|
|
|
16
16
|
def configured_upload_path
|
|
17
|
-
Hyrax.config.upload_path.call
|
|
17
|
+
Pathname.new(Hyrax.config.upload_path.call)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def configured_cache_path
|
|
21
|
-
Hyrax.config.cache_path.call
|
|
21
|
+
Pathname.new(Hyrax.config.cache_path.call)
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# Collection branding info is tightly coupled to collections. When they are
|
|
5
|
+
# removed using wipe!, the associated database entries for collection branding
|
|
6
|
+
# also have to be deleted.
|
|
7
|
+
#
|
|
8
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
9
|
+
# Data can not be recovered.
|
|
10
|
+
#
|
|
11
|
+
# @todo This destroys branding info in the database. Should it also delete
|
|
12
|
+
# related banner and logo files?
|
|
13
|
+
class CollectionBrandingDestroyer
|
|
14
|
+
class << self
|
|
15
|
+
attr_accessor :logger
|
|
16
|
+
|
|
17
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
18
|
+
raise("CollectionBrandingDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
19
|
+
@logger = logger
|
|
20
|
+
|
|
21
|
+
logger.info("Destroying collection branding...")
|
|
22
|
+
|
|
23
|
+
Hyrax::CollectionBrandingInfo.destroy_all
|
|
24
|
+
logger.info(" collection branding -- DESTROYED")
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# Collection types are recreated by the release seed data. Clear out here to
|
|
5
|
+
# start with a fresh set.
|
|
6
|
+
#
|
|
7
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
8
|
+
# Data can not be recovered.
|
|
9
|
+
#
|
|
10
|
+
class CollectionTypesDestroyer
|
|
11
|
+
class << self
|
|
12
|
+
attr_accessor :logger
|
|
13
|
+
|
|
14
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
15
|
+
raise("CollectionTypesDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
16
|
+
@logger = logger
|
|
17
|
+
|
|
18
|
+
logger.info("Destroying collection types...")
|
|
19
|
+
|
|
20
|
+
Hyrax::CollectionType.destroy_all
|
|
21
|
+
logger.info(" collection types -- DESTROYED")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# When the default admin set is removed using wipe!, the cache of the default
|
|
5
|
+
# admin set id also needs to be deleted.
|
|
6
|
+
#
|
|
7
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
8
|
+
# Data can not be recovered.
|
|
9
|
+
#
|
|
10
|
+
class DefaultAdminSetIdCacheDestroyer
|
|
11
|
+
class << self
|
|
12
|
+
attr_accessor :logger
|
|
13
|
+
|
|
14
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
15
|
+
raise("DefaultAdminSetIdCacheDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
16
|
+
@logger = logger
|
|
17
|
+
|
|
18
|
+
logger.info("Destroying default admin set id cache...")
|
|
19
|
+
|
|
20
|
+
Hyrax::DefaultAdministrativeSet.destroy_all
|
|
21
|
+
logger.info(" default admin set id cache -- DESTROYED")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# Featured works are tightly coupled to works in the repository. When they
|
|
5
|
+
# are removed using wipe!, the associated database entries for featured
|
|
6
|
+
# works also need to be deleted.
|
|
7
|
+
#
|
|
8
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
9
|
+
# Data can not be recovered.
|
|
10
|
+
#
|
|
11
|
+
class FeaturedWorksDestroyer
|
|
12
|
+
class << self
|
|
13
|
+
attr_accessor :logger
|
|
14
|
+
|
|
15
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
16
|
+
raise("FeaturedWorksDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
17
|
+
@logger = logger
|
|
18
|
+
|
|
19
|
+
logger.info("Destroying featured works...")
|
|
20
|
+
|
|
21
|
+
FeaturedWork.destroy_all
|
|
22
|
+
logger.info(" featured works -- DESTROYED")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# PermissionTemplates are tightly coupled to admin sets and collections.
|
|
5
|
+
# When they are removed using wipe!, the associated database entries for
|
|
6
|
+
# permission templates also have to be deleted.
|
|
7
|
+
#
|
|
8
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
9
|
+
# Data can not be recovered.
|
|
10
|
+
#
|
|
11
|
+
class PermissionTemplatesDestroyer
|
|
12
|
+
class << self
|
|
13
|
+
attr_accessor :logger
|
|
14
|
+
|
|
15
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
16
|
+
raise("PermissionTemplatesDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
17
|
+
@logger = logger
|
|
18
|
+
|
|
19
|
+
logger.info("Destroying permission templates...")
|
|
20
|
+
|
|
21
|
+
Hyrax::PermissionTemplateAccess.destroy_all
|
|
22
|
+
logger.info(" permission templates access -- DESTROYED")
|
|
23
|
+
|
|
24
|
+
Hyrax::PermissionTemplate.destroy_all
|
|
25
|
+
logger.info(" permission templates -- DESTROYED")
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# Clear all repository metadata from the datastore (e.g. Fedora, Postgres)
|
|
5
|
+
# and from Solr.
|
|
6
|
+
#
|
|
7
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
8
|
+
# Data can not be recovered.
|
|
9
|
+
#
|
|
10
|
+
# @note When using Wings adapter, which wraps ActiveFedora, the persister wipe!
|
|
11
|
+
# method clears both Fedora and Solr. Optionally, an index_adapter may also
|
|
12
|
+
# be set to use Valkyrie to write to a second Solr core. If the Hyrax index
|
|
13
|
+
# adapter is the NullIndexingAdapter, that means that Valkyrie is not being
|
|
14
|
+
# used to index the repository metadata and does not need to be cleared using
|
|
15
|
+
# the Hyrax index adapter.
|
|
16
|
+
#
|
|
17
|
+
# When using other Valkyrie persistence adapters, wipe! only clears the repository
|
|
18
|
+
# metadata from the datastore (e.g. ORM table in Postgres). The index adapter
|
|
19
|
+
# is used to clear metadata from Solr.
|
|
20
|
+
#
|
|
21
|
+
class RepositoryMetadataDestroyer
|
|
22
|
+
class << self
|
|
23
|
+
attr_accessor :logger
|
|
24
|
+
|
|
25
|
+
def destroy_metadata(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
26
|
+
raise("RepositoryMetadataDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
27
|
+
@logger = logger
|
|
28
|
+
|
|
29
|
+
logger.info("Destroying all repository metadata...")
|
|
30
|
+
|
|
31
|
+
unless Hyrax.index_adapter.is_a? Valkyrie::Indexing::NullIndexingAdapter
|
|
32
|
+
conn = Hyrax.index_adapter.connection
|
|
33
|
+
conn.delete_by_query('*:*', params: { 'softCommit' => true })
|
|
34
|
+
end
|
|
35
|
+
Hyrax.persister.wipe!
|
|
36
|
+
|
|
37
|
+
logger.info(" repository metadata -- DESTROYED")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module DataDestroyers
|
|
4
|
+
# Stats are tightly coupled to works and files in the repository. When they
|
|
5
|
+
# are removed using wipe!, the associated database entries for stats also
|
|
6
|
+
# need to be deleted.
|
|
7
|
+
#
|
|
8
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
9
|
+
# Data can not be recovered.
|
|
10
|
+
#
|
|
11
|
+
class StatsDestroyer
|
|
12
|
+
class << self
|
|
13
|
+
attr_accessor :logger
|
|
14
|
+
|
|
15
|
+
def destroy_data(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
16
|
+
raise("StatsDataDestroyer is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
17
|
+
@logger = logger
|
|
18
|
+
|
|
19
|
+
logger.info("Destroying stats...")
|
|
20
|
+
|
|
21
|
+
FileDownloadStat.destroy_all
|
|
22
|
+
logger.info(" file download stats -- DESTROYED")
|
|
23
|
+
|
|
24
|
+
FileViewStat.destroy_all
|
|
25
|
+
logger.info(" file view stats -- DESTROYED")
|
|
26
|
+
|
|
27
|
+
WorkViewStat.destroy_all
|
|
28
|
+
logger.info(" work view stats -- DESTROYED")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Hyrax
|
|
4
|
+
##
|
|
5
|
+
# These methods created for use in rake tasks and db/seeds.rb They can be used to:
|
|
6
|
+
# * clear repository metadata and related data and files
|
|
7
|
+
# * clear temporary files
|
|
8
|
+
# * clear logs
|
|
9
|
+
#
|
|
10
|
+
# @note WARNING: DO NOT USE IN PRODUCTION! The methods in this class are destructive.
|
|
11
|
+
# Data can not be recovered.
|
|
12
|
+
#
|
|
13
|
+
class DataMaintenance
|
|
14
|
+
attr_accessor :logger, :allow_destruction_in_production
|
|
15
|
+
|
|
16
|
+
def initialize(logger: Logger.new(STDOUT), allow_destruction_in_production: false)
|
|
17
|
+
raise("Destruction of data is not for use in production!") if Rails.env.production? && !allow_destruction_in_production
|
|
18
|
+
@logger = logger
|
|
19
|
+
@allow_destruction_in_production = allow_destruction_in_production
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Clear repository metadata and related data
|
|
23
|
+
# * clear repository metadata from the datastore (e.g. Fedora, Postgres) and from Solr
|
|
24
|
+
# * clear targeted application data that is tightly coupled to repository metadata
|
|
25
|
+
# * delete files that are tightly coupled to repository metadata
|
|
26
|
+
def destroy_repository_metadata_and_related_data
|
|
27
|
+
Hyrax::DataDestroyers::RepositoryMetadataDestroyer.destroy_metadata(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
28
|
+
Hyrax::DataDestroyers::StatsDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
29
|
+
Hyrax::DataDestroyers::FeaturedWorksDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
30
|
+
Hyrax::DataDestroyers::PermissionTemplatesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
31
|
+
Hyrax::DataDestroyers::CollectionBrandingDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
32
|
+
Hyrax::DataDestroyers::DefaultAdminSetIdCacheDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
33
|
+
Hyrax::DataDestroyers::CollectionTypesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
34
|
+
|
|
35
|
+
# TODO: Stubbed until RepositoryFilesDestroyer is written
|
|
36
|
+
# Hyrax::DataDestroyers::RepositoryFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @todo write code to clear out log files
|
|
40
|
+
def destroy_log_files
|
|
41
|
+
# Stubbed until LogFilesDestroyer is written
|
|
42
|
+
# Hyrax::DataDestroyers::LogFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @todo write code to delete tmp files
|
|
46
|
+
def destroy_tmp_files
|
|
47
|
+
# Stubbed until TmpFilesDestroyer is written
|
|
48
|
+
# Hyrax::DataDestroyers::TmpFilesDestroyer.destroy_data(logger: logger, allow_destruction_in_production: allow_destruction_in_production)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
# This class was created for use in rake tasks and db/seeds.rb. It generates
|
|
4
|
+
# required repository metadata including Admin Set and User collection types and
|
|
5
|
+
# the default admin set.
|
|
6
|
+
#
|
|
7
|
+
# Seeders of required data are non-destructive. If the data already exists,
|
|
8
|
+
# it will not be replaced.
|
|
9
|
+
class RequiredDataSeeder
|
|
10
|
+
attr_accessor :logger
|
|
11
|
+
|
|
12
|
+
def initialize(logger: Logger.new(STDOUT))
|
|
13
|
+
@logger = logger
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def generate_seed_data
|
|
17
|
+
Hyrax::RequiredDataSeeders::CollectionTypeSeeder.generate_seeds(logger: logger)
|
|
18
|
+
Hyrax::RequiredDataSeeders::CollectionSeeder.generate_seeds(logger: logger)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
module Hyrax
|
|
5
|
+
module RequiredDataSeeders
|
|
6
|
+
# This class was created for use in rake tasks and db/seeds.rb. It generates
|
|
7
|
+
# collections that are required for all Hyrax applications.
|
|
8
|
+
#
|
|
9
|
+
# Seeders of required data are non-destructive. If the data already exists,
|
|
10
|
+
# it will not be replaced.
|
|
11
|
+
class CollectionSeeder
|
|
12
|
+
class << self
|
|
13
|
+
attr_accessor :logger
|
|
14
|
+
|
|
15
|
+
def generate_seeds(logger: Logger.new(STDOUT))
|
|
16
|
+
@logger = logger
|
|
17
|
+
|
|
18
|
+
logger.info("Adding required collections...")
|
|
19
|
+
|
|
20
|
+
default_admin_set = Hyrax::AdminSetCreateService.find_or_create_default_admin_set
|
|
21
|
+
logger.info " #{default_admin_set.title.first} -- FOUND OR CREATED"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Hyrax
|
|
3
|
+
module RequiredDataSeeders
|
|
4
|
+
# This class was created for use in rake tasks and db/seeds.rb. It generates
|
|
5
|
+
# collection types that are required for all Hyrax applications.
|
|
6
|
+
#
|
|
7
|
+
# Seeders of required data are non-destructive. If the data already exists,
|
|
8
|
+
# it will not be replaced.
|
|
9
|
+
class CollectionTypeSeeder
|
|
10
|
+
class << self
|
|
11
|
+
attr_accessor :logger
|
|
12
|
+
|
|
13
|
+
def generate_seeds(logger: Logger.new(STDOUT))
|
|
14
|
+
@logger = logger
|
|
15
|
+
|
|
16
|
+
logger.info("Adding required collection types...")
|
|
17
|
+
|
|
18
|
+
as_ct = Hyrax::CollectionType.find_or_create_admin_set_type
|
|
19
|
+
set_badge_color(as_ct, '#990000')
|
|
20
|
+
logger.info(" #{as_ct.title} -- FOUND OR CREATED")
|
|
21
|
+
|
|
22
|
+
user_ct = Hyrax::CollectionType.find_or_create_default_collection_type
|
|
23
|
+
set_badge_color(user_ct, '#0099cc')
|
|
24
|
+
logger.info(" #{user_ct.title} -- FOUND OR CREATED")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def set_badge_color(collection_type, badge_color = nil)
|
|
30
|
+
collection_type.badge_color = badge_color
|
|
31
|
+
collection_type.save
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Hyrax
|
|
4
|
+
# This class was created for use in rake tasks and db/seeds.rb. It generates
|
|
5
|
+
# repository metadata needed for release testing. This data can also be helpful
|
|
6
|
+
# for local development testing.
|
|
7
|
+
class TestDataSeeder
|
|
8
|
+
attr_accessor :logger, :allow_seeding_in_production
|
|
9
|
+
|
|
10
|
+
def initialize(logger: Logger.new(STDOUT), allow_seeding_in_production: false)
|
|
11
|
+
raise("TestDataSeeder is not for use in production!") if Rails.env.production? && !allow_seeding_in_production
|
|
12
|
+
@logger = logger
|
|
13
|
+
@allow_seeding_in_production = allow_seeding_in_production
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def generate_seed_data
|
|
17
|
+
Hyrax::TestDataSeeders::UserSeeder.generate_seeds(logger: logger, allow_seeding_in_production: allow_seeding_in_production)
|
|
18
|
+
Hyrax::TestDataSeeders::CollectionTypeSeeder.generate_seeds(logger: logger, allow_seeding_in_production: allow_seeding_in_production)
|
|
19
|
+
Hyrax::TestDataSeeders::CollectionSeeder.generate_seeds(logger: logger, allow_seeding_in_production: allow_seeding_in_production)
|
|
20
|
+
# TODO: add work seeder
|
|
21
|
+
# Hyrax::TestDataSeeders::WorkSeeder.generate_seeds(logger: logger, allow_seeding_in_production: allow_seeding_in_production)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|