From 0f77dc4cebe133011c4bc00a0d9f806723d4a869 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Fri, 26 May 2023 10:39:42 +0100 Subject: [PATCH] Issue #3000717 by Grevil, Anybody, quietone, Gauravvvv, edysmp, benjifisher, larowlan: Missing mapping for "nodereference_url" widget (cherry picked from commit 1a9a16cf2aca59bdebd1e5750bfc365ad28d55f1) --- core/modules/field/migrations/d6_field.yml | 1 + .../d6_field_instance_widget_settings.yml | 1 + .../migrations/state/field.migrate_drupal.yml | 1 + .../Kernel/Migrate/d6/MigrateFieldTest.php | 6 +++ .../d6/MigrateFieldWidgetSettingsTest.php | 5 ++ .../migrate_drupal/tests/fixtures/drupal6.php | 49 +++++++++++++++++++ .../src/Kernel/d6/FieldDiscoveryTest.php | 1 + .../d6/MultilingualReviewPageTest.php | 1 + .../d6/NoMultilingualReviewPageTest.php | 1 + .../tests/src/Functional/d6/Upgrade6Test.php | 5 +- 10 files changed, 69 insertions(+), 2 deletions(-) diff --git a/core/modules/field/migrations/d6_field.yml b/core/modules/field/migrations/d6_field.yml index fa611f2ed69..8ede3cbf32a 100644 --- a/core/modules/field/migrations/d6_field.yml +++ b/core/modules/field/migrations/d6_field.yml @@ -28,6 +28,7 @@ process: userreference_autocomplete: entity_reference nodereference: nodereference_select: entity_reference + nodereference_url: entity_reference number_integer: number: integer optionwidgets_select: list_integer diff --git a/core/modules/field/migrations/d6_field_instance_widget_settings.yml b/core/modules/field/migrations/d6_field_instance_widget_settings.yml index 815e8316b58..248c4289e50 100644 --- a/core/modules/field/migrations/d6_field_instance_widget_settings.yml +++ b/core/modules/field/migrations/d6_field_instance_widget_settings.yml @@ -58,6 +58,7 @@ process: optionwidgets_buttons: options_buttons optionwidgets_select: options_select nodereference_select: options_select + nodereference_url: entity_reference_autocomplete nodereference_buttons: options_buttons nodereference_autocomplete: entity_reference_autocomplete_tags userreference_select: options_select diff --git a/core/modules/field/migrations/state/field.migrate_drupal.yml b/core/modules/field/migrations/state/field.migrate_drupal.yml index 0ec481972fd..1928868c021 100644 --- a/core/modules/field/migrations/state/field.migrate_drupal.yml +++ b/core/modules/field/migrations/state/field.migrate_drupal.yml @@ -2,6 +2,7 @@ finished: 6: nodereference: core + nodereference_url: core userreference: core content: field email: core diff --git a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldTest.php b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldTest.php index e78c3506cc7..d931004b50f 100644 --- a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldTest.php +++ b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldTest.php @@ -102,6 +102,12 @@ class MigrateFieldTest extends MigrateDrupal6TestBase { $this->assertSame('entity_reference', $field_storage->getType()); $this->assertSame('node', $field_storage->getSetting('target_type')); + // Test a second node reference field. + $field_storage = FieldStorageConfig::load('node.field_company_4'); + $this->assertInstanceOf(FieldStorageConfig::class, $field_storage); + $this->assertSame('entity_reference', $field_storage->getType()); + $this->assertSame('node', $field_storage->getSetting('target_type')); + // Test a user reference field. $field_storage = FieldStorageConfig::load('node.field_commander'); $this->assertInstanceOf(FieldStorageConfig::class, $field_storage); diff --git a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php index c986b0c3736..b986260363b 100644 --- a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php +++ b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php @@ -128,6 +128,11 @@ class MigrateFieldWidgetSettingsTest extends MigrateDrupal6TestBase { $this->assertIsArray($component); $this->assertSame('entity_reference_autocomplete_tags', $component['type']); + $component = $display_repository->getFormDisplay('node', 'employee', 'default') + ->getComponent('field_company_4'); + $this->assertIsArray($component); + $this->assertSame('entity_reference_autocomplete', $component['type']); + $component = $display_repository->getFormDisplay('node', 'employee', 'default') ->getComponent('field_commander'); $this->assertIsArray($component); diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php index 0badecba795..85503493cf7 100644 --- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php +++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php @@ -2963,6 +2963,18 @@ $connection->insert('content_node_field') 'active' => '1', 'locked' => '0', )) +->values(array( + 'field_name' => 'field_company_4', + 'type' => 'nodereference', + 'global_settings' => 'a:1:{s:19:"referenceable_types";a:10:{s:7:"company";s:7:"company";s:7:"article";i:0;s:8:"employee";i:0;s:5:"forum";i:0;s:10:"test_event";i:0;s:9:"test_page";i:0;s:11:"test_planet";i:0;s:10:"test_story";i:0;s:7:"sponsor";i:0;s:5:"story";i:0;}}', + 'required' => '0', + 'multiple' => '0', + 'db_storage' => '1', + 'module' => 'nodereference', + 'db_columns' => 'a:1:{s:3:"nid";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:0;s:5:"index";b:1;}}', + 'active' => '1', + 'locked' => '0', +)) ->values(array( 'field_name' => 'field_multivalue', 'type' => 'number_decimal', @@ -3440,6 +3452,18 @@ $connection->insert('content_node_field_instance') 'widget_module' => 'nodereference', 'widget_active' => '1', )) +->values(array( + 'field_name' => 'field_company_4', + 'type_name' => 'employee', + 'weight' => '36', + 'label' => 'Company 4', + 'widget_type' => 'nodereference_url', + 'widget_settings' => 'a:7:{s:18:"autocomplete_match";s:8:"contains";s:4:"size";s:2:"60";s:13:"default_value";a:1:{i:0;a:2:{s:3:"nid";N;s:14:"_error_element";s:50:"default_value_widget][field_company_4][0][nid][nid";}}s:17:"default_value_php";N;s:9:"node_link";a:5:{s:6:"teaser";i:0;s:4:"full";i:1;s:5:"title";s:14:"Company create";s:11:"hover_title";s:0:"";s:11:"destination";s:4:"node";}s:8:"fallback";s:12:"autocomplete";s:13:"edit_fallback";i:1;}', + 'display_settings' => 'a:5:{s:5:"label";a:2:{s:6:"format";s:5:"above";s:7:"exclude";i:0;}i:5;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:6:"teaser";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:4:"full";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:4;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}}', + 'description' => '', + 'widget_module' => 'nodereference', + 'widget_active' => '1', +)) ->values(array( 'field_name' => 'field_multivalue', 'type_name' => 'test_planet', @@ -3847,6 +3871,12 @@ $connection->schema()->createTable('content_type_employee', array( 'size' => 'normal', 'unsigned' => TRUE, ), + 'field_company_4_nid' => array( + 'type' => 'int', + 'not null' => FALSE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), 'field_sync_email' => array( 'type' => 'varchar', 'not null' => FALSE, @@ -3869,6 +3899,9 @@ $connection->schema()->createTable('content_type_employee', array( 'field_company_3_nid' => array( 'field_company_3_nid', ), + 'field_company_4_nid' => array( + 'field_company_4_nid', + ), ), 'mysql_character_set' => 'utf8', )); @@ -3880,6 +3913,7 @@ $connection->insert('content_type_employee') 'field_commander_uid', 'field_company_2_nid', 'field_company_3_nid', + 'field_company_4_nid', 'field_sync_email', )) ->values(array( @@ -3888,6 +3922,7 @@ $connection->insert('content_type_employee') 'field_commander_uid' => '8', 'field_company_2_nid' => '15', 'field_company_3_nid' => '16', + 'field_company_4_nid' => '16', 'field_sync_email' => NULL, )) ->values(array( @@ -3896,6 +3931,7 @@ $connection->insert('content_type_employee') 'field_commander_uid' => NULL, 'field_company_2_nid' => NULL, 'field_company_3_nid' => NULL, + 'field_company_4_nid' => NULL, 'field_sync_email' => 'jsmith@example.com', )) ->values(array( @@ -3904,6 +3940,7 @@ $connection->insert('content_type_employee') 'field_commander_uid' => NULL, 'field_company_2_nid' => NULL, 'field_company_3_nid' => NULL, + 'field_company_4_nid' => NULL, 'field_sync_email' => 'jsmith@example.com', )) ->execute(); @@ -48073,6 +48110,18 @@ $connection->insert('system') 'weight' => '0', 'info' => 'a:13:{s:4:"name";s:10:"Pushbutton";s:11:"description";s:52:"Tabled, multi-column theme in blue and orange tones.";s:7:"version";s:4:"6.38";s:4:"core";s:3:"6.x";s:6:"engine";s:11:"phptemplate";s:7:"project";s:6:"drupal";s:9:"datestamp";s:10:"1456343372";s:7:"regions";a:5:{s:4:"left";s:12:"Left sidebar";s:5:"right";s:13:"Right sidebar";s:7:"content";s:7:"Content";s:6:"header";s:6:"Header";s:6:"footer";s:6:"Footer";}s:8:"features";a:10:{i:0;s:20:"comment_user_picture";i:1;s:7:"favicon";i:2;s:7:"mission";i:3;s:4:"logo";i:4;s:4:"name";i:5;s:17:"node_user_picture";i:6;s:6:"search";i:7;s:6:"slogan";i:8;s:13:"primary_links";i:9;s:15:"secondary_links";}s:11:"stylesheets";a:1:{s:3:"all";a:1:{s:9:"style.css";s:27:"themes/pushbutton/style.css";}}s:7:"scripts";a:1:{s:9:"script.js";s:27:"themes/pushbutton/script.js";}s:10:"screenshot";s:32:"themes/pushbutton/screenshot.png";s:3:"php";s:5:"4.3.5";}', )) +->values(array( + 'filename' => 'sites/all/modules/nodereference_url/nodereference_url.module', + 'name' => 'nodereference_url', + 'type' => 'module', + 'owner' => '', + 'status' => '1', + 'throttle' => '0', + 'bootstrap' => '0', + 'schema_version' => '6100', + 'weight' => '0', + 'info' => 'a:8:{s:4:"name";s:25:"Node Reference URL Widget";s:11:"description";s:99:"Adds an additional widget to the CCK Node Reference field that prepopulates a reference by the URL.";s:12:"dependencies";a:1:{i:0;s:13:"nodereference";}s:7:"package";s:3:"CCK";s:4:"core";s:3:"6.x";s:10:"dependents";a:0:{}s:7:"version";N;s:3:"php";s:5:"4.3.5";}', +)) ->execute(); $connection->schema()->createTable('term_data', array( 'fields' => array( diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d6/FieldDiscoveryTest.php b/core/modules/migrate_drupal/tests/src/Kernel/d6/FieldDiscoveryTest.php index 7085fa7239e..d29d763ea57 100644 --- a/core/modules/migrate_drupal/tests/src/Kernel/d6/FieldDiscoveryTest.php +++ b/core/modules/migrate_drupal/tests/src/Kernel/d6/FieldDiscoveryTest.php @@ -89,6 +89,7 @@ class FieldDiscoveryTest extends MigrateDrupal6TestBase { 'field_company', 'field_company_2', 'field_company_3', + 'field_company_4', 'field_sync', 'field_multivalue', 'field_test_text_single_checkbox', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php index 92136beb9ed..241c72964d9 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MultilingualReviewPageTest.php @@ -107,6 +107,7 @@ class MultilingualReviewPageTest extends MultilingualReviewPageTestBase { 'Menu translation', 'Node', 'Node Reference', + 'Node Reference URL Widget', 'Nodeaccess', 'Number', 'OpenID', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php index d00a238c01c..7fa0e217709 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/NoMultilingualReviewPageTest.php @@ -99,6 +99,7 @@ class NoMultilingualReviewPageTest extends NoMultilingualReviewPageTestBase { 'Node', 'Nodeaccess', 'Node Reference', + 'Node Reference URL Widget', 'Number', 'OpenID', 'PHP filter', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php index fb85520432b..1da8b95b4f6 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php @@ -78,8 +78,8 @@ class Upgrade6Test extends MigrateUpgradeExecuteTestBase { 'contact_message' => 0, 'configurable_language' => 5, 'editor' => 2, - 'field_config' => 103, - 'field_storage_config' => 71, + 'field_config' => 104, + 'field_storage_config' => 72, 'file' => 7, 'filter_format' => 7, 'image_style' => 6, @@ -152,6 +152,7 @@ class Upgrade6Test extends MigrateUpgradeExecuteTestBase { 'Menu translation', 'Node', 'Node Reference', + 'Node Reference URL Widget', 'Option Widgets', 'Path', 'Profile translation',