From 099efb4a60c623270f8d355f379d560b9f6e1e44 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Wed, 18 Aug 2021 12:20:59 -0400 Subject: [PATCH 1/9] Require media_of for all media Ingests will no longer silently orphan media if the member_of field is empty, or malformed (i.e. a typo, pointing to a non-existant id). --- .../field.field.media.audio.field_media_of.yml | 17 +++++++++++++++-- ...ield.field.media.document.field_media_of.yml | 17 +++++++++++++++-- ...ield.media.extracted_text.field_media_of.yml | 13 +++++++++++-- .../field.field.media.file.field_media_of.yml | 17 +++++++++++++++-- ...a.fits_technical_metadata.field_media_of.yml | 17 +++++++++++++++-- .../field.field.media.image.field_media_of.yml | 17 +++++++++++++++-- .../field.field.media.video.field_media_of.yml | 17 +++++++++++++++-- .../sync/field.storage.media.field_media_of.yml | 4 ++++ 8 files changed, 105 insertions(+), 14 deletions(-) diff --git a/codebase/config/sync/field.field.media.audio.field_media_of.yml b/codebase/config/sync/field.field.media.audio.field_media_of.yml index 1819e86e9..2077ca7d2 100644 --- a/codebase/config/sync/field.field.media.audio.field_media_of.yml +++ b/codebase/config/sync/field.field.media.audio.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.audio + - node.type.islandora_object enforced: module: - islandora_core_feature + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: InUFyVlpxFYVY-YhhapTUcRhFN2ckUDTH37xpa3Gs2M id: media.audio.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: audio label: 'Media of' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: collection_object field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.document.field_media_of.yml b/codebase/config/sync/field.field.media.document.field_media_of.yml index 4e6da123c..542b0fb40 100644 --- a/codebase/config/sync/field.field.media.document.field_media_of.yml +++ b/codebase/config/sync/field.field.media.document.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.document + - node.type.islandora_object enforced: module: - islandora_core_feature + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: hCtesdEi_L52_jy8fXeSz8iof2nR_h6KdIHwHhojtvg id: media.document.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: document label: 'Media of' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.extracted_text.field_media_of.yml b/codebase/config/sync/field.field.media.extracted_text.field_media_of.yml index 213cf19c3..852487f90 100644 --- a/codebase/config/sync/field.field.media.extracted_text.field_media_of.yml +++ b/codebase/config/sync/field.field.media.extracted_text.field_media_of.yml @@ -5,6 +5,13 @@ dependencies: config: - field.storage.media.field_media_of - media.type.extracted_text + - node.type.islandora_object + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: y9R5H1jor6fE99GN9mvpbOkNiq3_xWCt-ROho5REz2U id: media.extracted_text.field_media_of @@ -13,15 +20,17 @@ entity_type: media bundle: extracted_text label: 'Media of' description: '' -required: false +required: true translatable: true default_value: { } default_value_callback: '' settings: handler: 'default:node' handler_settings: - target_bundles: null + target_bundles: + islandora_object: islandora_object sort: field: _none auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.file.field_media_of.yml b/codebase/config/sync/field.field.media.file.field_media_of.yml index a7f0bf600..8e235f108 100644 --- a/codebase/config/sync/field.field.media.file.field_media_of.yml +++ b/codebase/config/sync/field.field.media.file.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.file + - node.type.islandora_object enforced: module: - islandora_core_feature + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: ZoFg1xcTNbj60kVradrk0lqIv9uKpyipN6vwxdFV7nQ id: media.file.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: file label: 'Media of' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.fits_technical_metadata.field_media_of.yml b/codebase/config/sync/field.field.media.fits_technical_metadata.field_media_of.yml index da206fd89..56c6422ad 100644 --- a/codebase/config/sync/field.field.media.fits_technical_metadata.field_media_of.yml +++ b/codebase/config/sync/field.field.media.fits_technical_metadata.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.fits_technical_metadata + - node.type.islandora_object enforced: module: - islandora_fits + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: 8CDR4tcfysCDQ6CBinsRniQdpngQlB7dyoDF2xQTj04 id: media.fits_technical_metadata.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: fits_technical_metadata label: 'Media of' description: '' -required: false +required: true translatable: true default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.image.field_media_of.yml b/codebase/config/sync/field.field.media.image.field_media_of.yml index c89c9d9ea..33ddb9c01 100644 --- a/codebase/config/sync/field.field.media.image.field_media_of.yml +++ b/codebase/config/sync/field.field.media.image.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.image + - node.type.islandora_object enforced: module: - islandora_core_feature + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: II3-g2WzFJTItCsK7PFCOchXURVgIiu6X9J4NBpEju0 id: media.image.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: image label: 'Media of' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.field.media.video.field_media_of.yml b/codebase/config/sync/field.field.media.video.field_media_of.yml index 65826ec28..4e81380c5 100644 --- a/codebase/config/sync/field.field.media.video.field_media_of.yml +++ b/codebase/config/sync/field.field.media.video.field_media_of.yml @@ -5,9 +5,16 @@ dependencies: config: - field.storage.media.field_media_of - media.type.video + - node.type.islandora_object enforced: module: - islandora_core_feature + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 _core: default_config_hash: h5JQnggi4jLBpJfch-_9pxhCzQem-ZkOjnrOrHqNHHo id: media.video.field_media_of @@ -16,11 +23,17 @@ entity_type: media bundle: video label: 'Media of' description: '' -required: false +required: true translatable: false default_value: { } default_value_callback: '' settings: handler: 'default:node' - handler_settings: { } + handler_settings: + target_bundles: + islandora_object: islandora_object + sort: + field: _none + auto_create: false + auto_create_bundle: '' field_type: entity_reference diff --git a/codebase/config/sync/field.storage.media.field_media_of.yml b/codebase/config/sync/field.storage.media.field_media_of.yml index f6cced58f..1416f4d77 100644 --- a/codebase/config/sync/field.storage.media.field_media_of.yml +++ b/codebase/config/sync/field.storage.media.field_media_of.yml @@ -6,8 +6,12 @@ dependencies: module: - islandora_core_feature module: + - field_permissions - media - node +third_party_settings: + field_permissions: + permission_type: public _core: default_config_hash: VN6byCtafQaDCBbb4rpeh3YZPTHgir0ycHw6y-S-TYw id: media.field_media_of From 5c121eeb5a982d7fd287f155341081b742eca20c Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Wed, 8 Sep 2021 15:08:27 -0400 Subject: [PATCH 2/9] Fix media_of reference in test data --- .../testcafe/migrations/media-image.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/10-migration-backend-tests/testcafe/migrations/media-image.csv b/tests/10-migration-backend-tests/testcafe/migrations/media-image.csv index 2f20f78c3..0cb3820c6 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/media-image.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/media-image.csv @@ -1,3 +1,3 @@ unique_id,name,access_terms,original_name,mime_type,media_of,media_use,url,alt_text,restricted_access media_img_00001,Looking For Fossils,:::media_accesscontrol_01||:::media_accesscontrol_02,TRP_7767.jpg,image/jpeg,:::media_io_1,Original File||Preservation File,http://migration-assets/assets/image/TRP_7767.jpg,Image alt text,0 -media_format_file_tiff_01,Tiff Image,:::media_accesscontrol_01||:::media_accesscontrol_02,tiff.tif,image/tiff,::title:Migrated Tiff Object,Original File,http://migration-assets/assets/image/formats/tiff.tif,tiff,1 +media_format_file_tiff_01,Tiff Image,:::media_accesscontrol_01||:::media_accesscontrol_02,tiff.tif,image/tiff,:::media_io_1,Original File,http://migration-assets/assets/image/formats/tiff.tif,tiff,1 From 8fd04c16ba86c0381137e214dee9bda4e6ef166d Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Wed, 8 Sep 2021 15:08:43 -0400 Subject: [PATCH 3/9] Make field_digital_publisher required --- ...ield.node.islandora_object.field_digital_publisher.yml | 8 +++++++- .../testcafe/migrations/media-islandora_object.csv | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/codebase/config/sync/field.field.node.islandora_object.field_digital_publisher.yml b/codebase/config/sync/field.field.node.islandora_object.field_digital_publisher.yml index f1cf69ea2..8268b7f50 100644 --- a/codebase/config/sync/field.field.node.islandora_object.field_digital_publisher.yml +++ b/codebase/config/sync/field.field.node.islandora_object.field_digital_publisher.yml @@ -8,13 +8,19 @@ dependencies: - taxonomy.vocabulary.corporate_body - taxonomy.vocabulary.family - taxonomy.vocabulary.person + module: + - epp +third_party_settings: + epp: + value: '' + on_update: 1 id: node.islandora_object.field_digital_publisher field_name: field_digital_publisher entity_type: node bundle: islandora_object label: 'Digital Publisher' description: 'Required if known. Record the agent responsible for publishing, releasing, or issuing a digital version of the resource. Please add or use terms from Person, Corporate Body, or Family taxonomies. If digitized by the library, please select "Johns Hopkins Sheridan Libraries" as the digital publisher.' -required: false +required: true translatable: false default_value: { } default_value_callback: '' diff --git a/tests/10-migration-backend-tests/testcafe/migrations/media-islandora_object.csv b/tests/10-migration-backend-tests/testcafe/migrations/media-islandora_object.csv index 6cd3af12f..a114ee9e0 100644 --- a/tests/10-migration-backend-tests/testcafe/migrations/media-islandora_object.csv +++ b/tests/10-migration-backend-tests/testcafe/migrations/media-islandora_object.csv @@ -1,3 +1,3 @@ -unique_id,node_id,title,abstract,access_rights,access_terms,alternative_title,collection_number,contributor,copyright,copyright_holder,creator,custodial_history,date_available,date_copyrighted,date_created,date_published,description,digital_identifier,digital_publisher,display_hints,dspace_identifier,dspace_itemid,extent,featured_item,finding_aid,genre,geoportal_link,issn,is_part_of,item_barcode,jhir_uri,language,library_catalog_link,member_of,model,oclc_number,publisher,publisher_country,resource_type,spatial_coverage,subject,table_of_contents,title_language,years -media_io_1,,Media Migration Repository Item One,,:::media_accessrights_01,:::media_accesscontrol_01||:::media_accesscontrol_02,,,,::name:Not Evaluated,:person::io-person_1,,,2021-07-23,,,,,,,,,,,0,,,,,,,,,,,Image,,,,::name:Image,,:::media-subject-01,,::name:English,2021 -media_io_2,,Media Migration Repository Item Two,,:::media_accessrights_01,:::media_accesscontrol_01||:::media_accesscontrol_02,,,,::name:Not Evaluated,:person::io-person_1,,,2021-07-23,,,,,,,,,,,0,,,,,,,,,,,Image,,,,::name:Image,,:::media-subject-01,,::name:English,2021 +unique_id,node_id,title,abstract,access_rights,access_terms,alternative_title,collection_number,contributor,copyright,copyright_holder,creator,custodial_history,date_available,date_copyrighted,date_created,date_published,description,digital_identifier,digital_publisher,display_hints,dspace_identifier,dspace_itemid,extent,featured_item,finding_aid,genre,geoportal_link,issn,is_part_of,item_barcode,jhir_uri,language,library_catalog_link,member_of,model,oclc_number,publisher,publisher_country,resource_type,spatial_coverage,subject,table_of_contents,title_language,years +media_io_1,,Media Migration Repository Item One,,:::media_accessrights_01,:::media_accesscontrol_01||:::media_accesscontrol_02,,,,::name:Not Evaluated,:person::io-person_1,,,2021-07-23,,,,,,:::io-corp_01,,,,,0,,,,,,,,,,,Image,,,,::name:Image,,:::media-subject-01,,::name:English,2021 +media_io_2,,Media Migration Repository Item Two,,:::media_accessrights_01,:::media_accesscontrol_01||:::media_accesscontrol_02,,,,::name:Not Evaluated,:person::io-person_1,,,2021-07-23,,,,,,:::io-corp_01,,,,,0,,,,,,,,,,,Image,,,,::name:Image,,:::media-subject-01,,::name:English,2021 From b65c47e714a3e4665f01b138a61dca8d3d84a09c Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Wed, 8 Sep 2021 15:18:20 -0400 Subject: [PATCH 4/9] Extent alt title to 5000 characters --- .../config/sync/field.storage.node.field_alternative_title.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codebase/config/sync/field.storage.node.field_alternative_title.yml b/codebase/config/sync/field.storage.node.field_alternative_title.yml index 0b914be6b..c4fc71edf 100644 --- a/codebase/config/sync/field.storage.node.field_alternative_title.yml +++ b/codebase/config/sync/field.storage.node.field_alternative_title.yml @@ -15,7 +15,7 @@ field_name: field_alternative_title entity_type: node type: language_value_pair settings: - max_length: '500' + max_length: '5000' is_ascii: false case_sensitive: false target_type: taxonomy_term From 9d2f14586ad6370d0996c19fae36ac206f1edd77 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Wed, 8 Sep 2021 20:06:25 -0400 Subject: [PATCH 5/9] Do not validate end-to-end csvs --- tests/01-end-to-end.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/01-end-to-end.sh b/tests/01-end-to-end.sh index 93b27d431..7d8e8ea00 100755 --- a/tests/01-end-to-end.sh +++ b/tests/01-end-to-end.sh @@ -2,6 +2,7 @@ set -e TESTCAFE_TESTS_FOLDER="$(pwd)/end-to-end" +use_env "DRUPAL_DEFAULT_MIGRATIONS_VALIDATE=false" # Start the backend that serves the media files to be migrated # Listens internally on port 80 (addressed as http:///assets/) From ddf3dc770592f8f843ec985e582839eb575642a9 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Thu, 9 Sep 2021 13:40:44 -0400 Subject: [PATCH 6/9] Add s3 corporatebody to populate digital_publisher --- end-to-end/tests/admin/s3.spec.js | 3 ++- end-to-end/tests/testdata/s3/corporatebody.csv | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 end-to-end/tests/testdata/s3/corporatebody.csv diff --git a/end-to-end/tests/admin/s3.spec.js b/end-to-end/tests/admin/s3.spec.js index 09f3209da..c73fc0055 100644 --- a/end-to-end/tests/admin/s3.spec.js +++ b/end-to-end/tests/admin/s3.spec.js @@ -25,6 +25,7 @@ test('Verify original file and derivatives are in S3', async t => { // migrate the test objects into Drupal await migrate(t, 'idc_ingest_taxonomy_islandora_accessterms', '../testdata/s3/access-terms.csv'); await migrate(t, 'idc_ingest_taxonomy_subject', '../testdata/s3/subject.csv'); + await migrate(t, 'idc_ingest_taxonomy_corporatebody', '../testdata/s3/corporatebody.csv'); await migrate(t, migrate_new_collection, '../testdata/s3/s3-collection.csv'); await migrate(t, migrate_new_items, '../testdata/s3/s3-islandora_object.csv'); await migrate(t, migrate_media_image, '../testdata/s3/s3-file.csv', 30000); @@ -47,7 +48,7 @@ test('Verify original file and derivatives are in S3', async t => { // assert expected attributes of the original media await t.expect(media.parent('tr').child('td').nth(2).innerText).eql('Image') - await t.expect(media.parent('tr').child('td').nth(3).innerText).eql('image/jpeg') + await t.expect(media.parent('tr').child('td').nth(3).innerText).eql('image/png') await t.expect(media.parent('tr').child('td').nth(4).innerText).contains('Original File') // assert the presence of a derivative thumbnail and service image diff --git a/end-to-end/tests/testdata/s3/corporatebody.csv b/end-to-end/tests/testdata/s3/corporatebody.csv new file mode 100644 index 000000000..007ba152d --- /dev/null +++ b/end-to-end/tests/testdata/s3/corporatebody.csv @@ -0,0 +1,2 @@ +unique_id,name,primary_name,subordinate_name,date_of_meeting_or_treaty,location_of_meeting,num_of_section_or_meet,corporate_body_alt_name,relationships,date,authority,description +s3_corp_01,S3 Corporate Body,S3 Corporate Body,,,,,,,2021||2022,,

This is a corporate body to fulfill required metadata constraints

From f98c2ee0fb59f470a7a69c5c2ad0cc1c0feda926 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Thu, 9 Sep 2021 13:41:23 -0400 Subject: [PATCH 7/9] Add required digital_publisher values --- end-to-end/tests/admin/s3.spec.js | 2 +- .../tests/testdata/s3/s3-islandora_object.csv | 3 ++- .../tests/testdata/ui/series-2-items-01.csv | 18 +++++++++--------- end-to-end/tests/ui/item-detail-image.spec.js | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/end-to-end/tests/admin/s3.spec.js b/end-to-end/tests/admin/s3.spec.js index c73fc0055..d4f816401 100644 --- a/end-to-end/tests/admin/s3.spec.js +++ b/end-to-end/tests/admin/s3.spec.js @@ -48,7 +48,7 @@ test('Verify original file and derivatives are in S3', async t => { // assert expected attributes of the original media await t.expect(media.parent('tr').child('td').nth(2).innerText).eql('Image') - await t.expect(media.parent('tr').child('td').nth(3).innerText).eql('image/png') + await t.expect(media.parent('tr').child('td').nth(3).innerText).eql('image/jpeg') await t.expect(media.parent('tr').child('td').nth(4).innerText).contains('Original File') // assert the presence of a derivative thumbnail and service image diff --git a/end-to-end/tests/testdata/s3/s3-islandora_object.csv b/end-to-end/tests/testdata/s3/s3-islandora_object.csv index bc4de4eb0..cd7958f3d 100644 --- a/end-to-end/tests/testdata/s3/s3-islandora_object.csv +++ b/end-to-end/tests/testdata/s3/s3-islandora_object.csv @@ -1,2 +1,3 @@ node_id,unique_id,title,abstract,access_rights,access_terms,alternative_title,collection_number,contributor,copyright,copyright_holder,creator,custodial_history,date_available,date_copyrighted,date_created,date_published,description,digital_identifier,digital_publisher,display_hints,dspace_identifier,dspace_itemid,extent,featured_item,finding_aid,genre,geoportal_link,issn,is_part_of,item_barcode,jhir_uri,language,library_catalog_link,member_of,model,oclc_number,publisher,publisher_country,resource_type,spatial_coverage,subject,table_of_contents,title_language,years -,s3_io_01,S3 Repository Item 1,,::name:Public digital access,:::accesscontrol_00,,,,::name:No Known Copyright,,,,2000-01-01,2000-01-01,2000-01-01,2000-01-01,,,,,,,,0,,,,,,,,,,:::s3-collection-01,Image,,,,::name:Dataset||::name:Image,,:::subject-01,,::name:English,2000 +,s3_io_01,S3 Repository Item 1,,::name:Public digital access,:::accesscontrol_00,,,,::name:No Known Copyright,,,,2000-01-01,2000-01-01,2000-01-01,2000-01-01,,,:corporate_body::s3_corp_01,,,,,0,,,,,,,,,,:::s3-collection-01,Image,,,,::name:Dataset||::name:Image,,:::subject-01,,::name:English,2000 +r diff --git a/end-to-end/tests/testdata/ui/series-2-items-01.csv b/end-to-end/tests/testdata/ui/series-2-items-01.csv index 6e52d76a8..be6b06633 100755 --- a/end-to-end/tests/testdata/ui/series-2-items-01.csv +++ b/end-to-end/tests/testdata/ui/series-2-items-01.csv @@ -1,10 +1,10 @@ node_id,unique_id,title,abstract,access_rights,access_terms,alternative_title,collection_number,contributor,copyright,copyright_holder,creator,custodial_history,date_available,date_copyrighted,date_created,date_published,description,digital_identifier,digital_publisher,display_hints,dspace_identifier,dspace_itemid,extent,featured_item,finding_aid,genre,geoportal_link,issn,is_part_of,item_barcode,jhir_uri,language,library_catalog_link,member_of,model,oclc_number,publisher,publisher_country,resource_type,spatial_coverage,subject,table_of_contents,title_language,years -,io_01,Sample Repository Item,Sample Repository Item Abstract in English;;eng||日本語のサンプルリポジトリアイテムの要約;;jpn,::name:Public digital access||::name:Public Domain,:::accesscontrol_06,Sample Repository Item Alternate Title;;eng||Пример альтернативного названия элемента репозитория на русском языке;;rus,1||2,"relators:art;:person::Adams, Islandora Object Ansel Easton, 1902-1984||relators:pht;:person::Adams, Islandora Object Ansel Easton, 1902-1984",::name:Copyright Undetermined,":person::Weston, Islandora Object Edward, 1886-1958||:person::Adams, Islandora Object Ansel Easton, 1902-1984","relators:art;:person::Adams, Islandora Object Ansel Easton, 1902-1984||relators:pht;:person::Weston, Islandora Object Edward, 1886-1958",This material was held by the author and donated recently;;eng||该材料由作者持有,最近捐赠;;chi,2020-01-01,2010-01-01||1941-11,1941-11-01||1941-11,1943||1944,Sample Repository Item Description in English;;eng||सैंपल रिपोजिटरी आइटम का विवरण हिंदी मे;;hin,a digital identifier one||a digital identifier two,:corporate_body::Ansel Adams Publishing Rights Trust||:corporate_body::Johns Hopkins Sheridan Libraries,,http://jscholarship.library.jhu.edu,DSpace Item ID,1 item||one image file,1,http://www.google.com,::name:Analog||::name:Nature,http://catalyst.library.jhu.edu,12345678,https://en.wikipedia.org/wiki/San_Rafael_Reef,123456,http://jhir.jhu.edu,::name:English||::name:German,http://catalog.library.jhu.edu,:::io-collection-08,Image,oclc_one||oclc_two,::name:Ansel Adams Publishing Rights Trust||::name:Johns Hopkins Sheridan Libraries,::name:Mountain Light Gallery||::name:Nevada,::name:Dataset||::name:Image,,:::io-subject-01||:::io-subject-02,Table of Contents in English;;eng||Inhaltsverzeichnis in deutscher Sprache;;ger,::name:English,1941||1943 -,io_02,Mallard,,::name:Public digital access||::name:Public Domain,:::accesscontrol_04,Mallard Duck;;eng||Pato Mallard;;spa,,,::name:No Known Copyright,,,,2001-01-01,2001-01-01,2001-01-01,2001-01-01,"The mallard (/ˈmælɑːrd, ˈmælərd/) or wild duck (Anas platyrhynchos) is a dabbling duck that breeds throughout the temperate and subtropical Americas, Eurasia, and North Africa, and has been introduced to New Zealand, Australia, Peru, Brazil, Uruguay, Argentina, Chile, Colombia, the Falkland Islands, and South Africa. This duck belongs to the subfamily Anatinae of the waterfowl family Anatidae. The male birds (drakes) have a glossy green head and are grey on their wings and belly, while the females (hens or ducks) have mainly brown-speckled plumage. Both sexes have an area of white-bordered black or iridescent blue feathers called a speculum on their wings; males especially tend to have blue speculum feathers. The mallard is 50–65 cm (20–26 in) long, of which the body makes up around two-thirds the length. The wingspan is 81–98 cm (32–39 in) and the bill is 4.4 to 6.1 cm (1.7 to 2.4 in) long. It is often slightly heavier than most other dabbling ducks, weighing 0.7–1.6 kg (1.5–3.5 lb). Mallards live in wetlands, eat water plants and small animals, and are social animals preferring to congregate in groups or flocks of varying sizes. This species is the main ancestor of most breeds of domestic ducks.;;eng",,,,,,,1,,,,,,,,,,:::io-collection-07,Image,,,,::name:Dataset||::name:Image,,:::subject-02,,::name:English,2000 -,io_03,Rubber,,::name:Public digital access||::name:Public Domain,:::accesscontrol_04,Rubber Duck;;eng,,,::name:No Known Copyright,,,,2000-01-01,2000-01-01,2000-01-01,2000-01-01,"A rubber duck or rubber ducky is a toy shaped like a stylized duck, generally yellow with a flat base. It may be made of rubber or rubber-like material such as vinyl plastic.[1] Rubber ducks were invented in the late 1800s when it became possible to more easily shape rubber,[2] and are believed to improve developmental skills in children during water play.[3] The yellow rubber duck has achieved an iconic status in Western pop culture and is often symbolically linked to bathing. Various novelty variations of the toy are produced, and many organisations use yellow rubber ducks in rubber duck races for fundraising worldwide.;;eng",,,,,,,1,,,,,,,,,,:::io-collection-07,Image,,,,::name:Dataset||::name:Image,,:::subject-02,,::name:English,2000 -,io_04,A book,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,A paged content repository item;;eng,,,,,,,0,,,,,,,,,,:::collection-01,Paged Content,,,,::name:Dataset||::name:Physical Object,,:::subject-03,,::name:English,2010 -,io_05,Page 1,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,Page one of a paged content item;;eng,,,,,,,0,,,,,,,,,,:islandora_object::io_04,Page,,,,::name:Dataset||::name:Image,,:::subject-03,,::name:English,2010 -,io_06,Page 2,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,Page two of a paged content item;;eng,,,,,,,0,,,,,,,,,,:islandora_object::io_04,Page,,,,::name:Dataset||::name:Image,,:::subject-03,,::name:English,2010 -,io_07,A PDF document,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,1999-01-01,1999-01-01,1999-01-01,1999-01-01,Item for testing PDF document display;;eng,,,,,,,0,,,,,,,,,,:::collection-01,Digital Document,,,,::name:Dataset||::name:Text,,:::subject-02,,::name:English,1999 -,io_08,A video item,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,2000-02-02,2000-02-02,2000-02-02,2000-02-02,Item for testing video rendering;;eng,,,,,,,0,,,,,,,,,,:::collection-01,Video,,,,::name:Dataset||::name:Moving Image,,:::subject-03,,::name:English,2000 -,io_09,Audio plus transcription,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,2000-02-02,2000-02-02,2000-02-02,2000-02-02,An audio file with transcription text;;eng,,,,,,,0,,,,,,,,,,:::collection-01,Audio,,,,::name:Dataset||::name:Sound,,:::subject-02,,::name:English,2000 +,io_01,Sample Repository Item,Sample Repository Item Abstract in English;;eng||日本語のサンプルリポジトリアイテムの要約;;jpn,::name:Public digital access||::name:Public Domain,:::accesscontrol_06,Sample Repository Item Alternate Title;;eng||Пример альтернативного названия элемента репозитория на русском языке;;rus,1||2,"relators:art;:person::Adams, Islandora Object Ansel Easton, 1902-1984||relators:pht;:person::Adams, Islandora Object Ansel Easton, 1902-1984",::name:Copyright Undetermined,":person::Weston, Islandora Object Edward, 1886-1958||:person::Adams, Islandora Object Ansel Easton, 1902-1984","relators:art;:person::Adams, Islandora Object Ansel Easton, 1902-1984||relators:pht;:person::Weston, Islandora Object Edward, 1886-1958",This material was held by the author and donated recently;;eng||该材料由作者持有,最近捐赠;;chi,2020-01-01,2010-01-01||1941-11,1941-11-01||1941-11,1943||1944,Sample Repository Item Description in English;;eng||सैंपल रिपोजिटरी आइटम का विवरण हिंदी मे;;hin,a digital identifier one||a digital identifier two,:person::person_2,,http://jscholarship.library.jhu.edu,DSpace Item ID,1 item||one image file,1,http://www.google.com,::name:Analog||::name:Nature,http://catalyst.library.jhu.edu,12345678,https://en.wikipedia.org/wiki/San_Rafael_Reef,123456,http://jhir.jhu.edu,::name:English||::name:German,http://catalog.library.jhu.edu,:::io-collection-08,Image,oclc_one||oclc_two,::name:Ansel Adams Publishing Rights Trust,::name:Mountain Light Gallery||::name:Nevada,::name:Dataset||::name:Image,,:::io-subject-01||:::io-subject-02,Table of Contents in English;;eng||Inhaltsverzeichnis in deutscher Sprache;;ger,::name:English,1941||1943 +,io_02,Mallard,,::name:Public digital access||::name:Public Domain,:::accesscontrol_04,Mallard Duck;;eng||Pato Mallard;;spa,,,::name:No Known Copyright,,,,2001-01-01,2001-01-01,2001-01-01,2001-01-01,"The mallard (/ˈmælɑːrd, ˈmælərd/) or wild duck (Anas platyrhynchos) is a dabbling duck that breeds throughout the temperate and subtropical Americas, Eurasia, and North Africa, and has been introduced to New Zealand, Australia, Peru, Brazil, Uruguay, Argentina, Chile, Colombia, the Falkland Islands, and South Africa. This duck belongs to the subfamily Anatinae of the waterfowl family Anatidae. The male birds (drakes) have a glossy green head and are grey on their wings and belly, while the females (hens or ducks) have mainly brown-speckled plumage. Both sexes have an area of white-bordered black or iridescent blue feathers called a speculum on their wings; males especially tend to have blue speculum feathers. The mallard is 50–65 cm (20–26 in) long, of which the body makes up around two-thirds the length. The wingspan is 81–98 cm (32–39 in) and the bill is 4.4 to 6.1 cm (1.7 to 2.4 in) long. It is often slightly heavier than most other dabbling ducks, weighing 0.7–1.6 kg (1.5–3.5 lb). Mallards live in wetlands, eat water plants and small animals, and are social animals preferring to congregate in groups or flocks of varying sizes. This species is the main ancestor of most breeds of domestic ducks.;;eng",,:person::person_2,,,,,1,,,,,,,,,,:::io-collection-07,Image,,,,::name:Dataset||::name:Image,,:::subject-02,,::name:English,2000 +,io_03,Rubber,,::name:Public digital access||::name:Public Domain,:::accesscontrol_04,Rubber Duck;;eng,,,::name:No Known Copyright,,,,2000-01-01,2000-01-01,2000-01-01,2000-01-01,"A rubber duck or rubber ducky is a toy shaped like a stylized duck, generally yellow with a flat base. It may be made of rubber or rubber-like material such as vinyl plastic.[1] Rubber ducks were invented in the late 1800s when it became possible to more easily shape rubber,[2] and are believed to improve developmental skills in children during water play.[3] The yellow rubber duck has achieved an iconic status in Western pop culture and is often symbolically linked to bathing. Various novelty variations of the toy are produced, and many organisations use yellow rubber ducks in rubber duck races for fundraising worldwide.;;eng",,:person::person_2,,,,,1,,,,,,,,,,:::io-collection-07,Image,,,,::name:Dataset||::name:Image,,:::subject-02,,::name:English,2000 +,io_04,A book,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,A paged content repository item;;eng,,:person::person_2,,,,,0,,,,,,,,,,:::collection-01,Paged Content,,,,::name:Dataset||::name:Physical Object,,:::subject-03,,::name:English,2010 +,io_05,Page 1,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,Page one of a paged content item;;eng,,:person::person_2,,,,,0,,,,,,,,,,:islandora_object::io_04,Page,,,,::name:Dataset||::name:Image,,:::subject-03,,::name:English,2010 +,io_06,Page 2,,::name:Restricted digital access%3A Institutional policy,:::accesscontrol_05,,,,::name:In Copyright,,,,2010-01-01,2010-01-01,2010-01-01,2010-01-01,Page two of a paged content item;;eng,,:person::person_2,,,,,0,,,,,,,,,,:islandora_object::io_04,Page,,,,::name:Dataset||::name:Image,,:::subject-03,,::name:English,2010 +,io_07,A PDF document,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,1999-01-01,1999-01-01,1999-01-01,1999-01-01,Item for testing PDF document display;;eng,,:person::person_2,,,,,0,,,,,,,,,,:::collection-01,Digital Document,,,,::name:Dataset||::name:Text,,:::subject-02,,::name:English,1999 +,io_08,A video item,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,2000-02-02,2000-02-02,2000-02-02,2000-02-02,Item for testing video rendering;;eng,,:person::person_2,,,,,0,,,,,,,,,,:::collection-01,Video,,,,::name:Dataset||::name:Moving Image,,:::subject-03,,::name:English,2000 +,io_09,Audio plus transcription,,::name:Public digital access||::name:Public Domain,:::accesscontrol_05,,,,::name:Copyright Undetermined,,,,2000-02-02,2000-02-02,2000-02-02,2000-02-02,An audio file with transcription text;;eng,,:person::person_2,,,,,0,,,,,,,,,,:::collection-01,Audio,,,,::name:Dataset||::name:Sound,,:::subject-02,,::name:English,2000 diff --git a/end-to-end/tests/ui/item-detail-image.spec.js b/end-to-end/tests/ui/item-detail-image.spec.js index 20578cb81..7bb6de607 100644 --- a/end-to-end/tests/ui/item-detail-image.spec.js +++ b/end-to-end/tests/ui/item-detail-image.spec.js @@ -18,7 +18,7 @@ test('Description', async (t) => { }); test('Metadata', async (t) => { - await t.expect(ImagePage.metadata.count).eql(14); + await t.expect(ImagePage.metadata.count).eql(15); await hasMetadata(t, 'Alternative Title', 'Mallard Duck (English)'); await hasMetadata(t, 'Alternative Title', 'Pato Mallard (Spanish)'); From 1d6ccdbb4a6f12d96d2675f1060b81bdb22f2409 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Thu, 9 Sep 2021 16:18:17 -0400 Subject: [PATCH 8/9] Re-enable validation on end-to-end tests --- tests/01-end-to-end.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/01-end-to-end.sh b/tests/01-end-to-end.sh index 7d8e8ea00..93b27d431 100755 --- a/tests/01-end-to-end.sh +++ b/tests/01-end-to-end.sh @@ -2,7 +2,6 @@ set -e TESTCAFE_TESTS_FOLDER="$(pwd)/end-to-end" -use_env "DRUPAL_DEFAULT_MIGRATIONS_VALIDATE=false" # Start the backend that serves the media files to be migrated # Listens internally on port 80 (addressed as http:///assets/) From a3fce8517a61e7ce09ef22c846429744ffce3260 Mon Sep 17 00:00:00 2001 From: Aaron Birkland Date: Fri, 10 Sep 2021 14:10:46 -0400 Subject: [PATCH 9/9] Allow collections to be the target of media_of --- .../config/sync/field.field.media.image.field_media_of.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/codebase/config/sync/field.field.media.image.field_media_of.yml b/codebase/config/sync/field.field.media.image.field_media_of.yml index 33ddb9c01..f5bd64e1f 100644 --- a/codebase/config/sync/field.field.media.image.field_media_of.yml +++ b/codebase/config/sync/field.field.media.image.field_media_of.yml @@ -5,6 +5,7 @@ dependencies: config: - field.storage.media.field_media_of - media.type.image + - node.type.collection_object - node.type.islandora_object enforced: module: @@ -31,9 +32,11 @@ settings: handler: 'default:node' handler_settings: target_bundles: + collection_object: collection_object islandora_object: islandora_object sort: field: _none + direction: ASC auto_create: false - auto_create_bundle: '' + auto_create_bundle: collection_object field_type: entity_reference