summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathaniel Catchpole2016-03-09 11:01:30 +0900
committerNathaniel Catchpole2016-03-09 11:01:30 +0900
commite66016814fcc95e2861a0902dd91776c4a3b1372 (patch)
tree495411fff101560bdce17a138f10111bfa94eb73
parent99151ae7e32156261dfea196edcf28d628b4218c (diff)
Issue #2616220 by webflo, quietone: Obey field cardinality in vocabulary migration
-rw-r--r--core/modules/migrate_drupal/tests/fixtures/drupal6.php2
-rw-r--r--core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml3
-rw-r--r--core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php2
-rw-r--r--core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php1
-rw-r--r--core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php2
-rw-r--r--core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php3
6 files changed, 10 insertions, 3 deletions
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
index 3b9efe5..8f88300 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
@@ -34072,7 +34072,7 @@ $connection->insert('vocabulary')
'help' => '',
'relations' => '1',
'hierarchy' => '2',
- 'multiple' => '0',
+ 'multiple' => '1',
'required' => '0',
'tags' => '0',
'module' => 'taxonomy',
diff --git a/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml b/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml
index 5139f31..a1c9735 100644
--- a/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml
+++ b/core/modules/taxonomy/migration_templates/d6_vocabulary_field.yml
@@ -8,7 +8,6 @@ source:
entity_type: node
type: entity_reference
target_entity_type: taxonomy_term
- cardinality: -1
process:
entity_type: 'constants/entity_type'
type: 'constants/type'
@@ -21,7 +20,7 @@ process:
plugin: skip_on_empty
method: row
'settings/target_type': 'constants/target_entity_type'
- cardinality: 'constants/cardinality'
+ cardinality: cardinality
destination:
plugin: md_entity:field_storage_config
migration_dependencies:
diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php b/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php
index d2d3f19..5c605bb 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/source/d6/Vocabulary.php
@@ -9,6 +9,7 @@ namespace Drupal\taxonomy\Plugin\migrate\source\d6;
use Drupal\migrate\Row;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
/**
* Drupal 6 vocabularies source from database.
@@ -72,6 +73,7 @@ class Vocabulary extends DrupalSqlBase {
->execute()
->fetchCol();
$row->setSourceProperty('node_types', $node_types);
+ $row->setSourceProperty('cardinality', ($row->getSourceProperty('tags') == 1 || $row->getSourceProperty('multiple') == 1) ? FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED : 1);
return parent::prepareRow($row);
}
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
index bab6ae5..8f2307d 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldInstanceTest.php
@@ -10,6 +10,7 @@ namespace Drupal\taxonomy\Tests\Migrate\d6;
use Drupal\field\Entity\FieldConfig;
use Drupal\migrate\Entity\Migration;
use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+use Drupal\taxonomy\Entity\Vocabulary;
/**
* Vocabulary field instance migration.
diff --git a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
index 9e866d8..b8d99ed 100644
--- a/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
+++ b/core/modules/taxonomy/src/Tests/Migrate/d6/MigrateVocabularyFieldTest.php
@@ -37,11 +37,13 @@ class MigrateVocabularyFieldTest extends MigrateDrupal6TestBase {
public function testVocabularyField() {
// Test that the field exists.
$field_storage_id = 'node.tags';
+ /** @var \Drupal\field\FieldStorageConfigInterface $field_storage */
$field_storage = FieldStorageConfig::load($field_storage_id);
$this->assertIdentical($field_storage_id, $field_storage->id());
$settings = $field_storage->getSettings();
$this->assertIdentical('taxonomy_term', $settings['target_type'], "Target type is correct.");
+ $this->assertIdentical(1, $field_storage->getCardinality(), "Field cardinality in 1.");
$this->assertIdentical(array('node', 'tags'), Migration::load('d6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap");
}
diff --git a/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php b/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php
index 60362d7..ab263d1 100644
--- a/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php
+++ b/core/modules/taxonomy/tests/src/Unit/Migrate/d6/VocabularyTest.php
@@ -8,6 +8,7 @@
namespace Drupal\Tests\taxonomy\Unit\Migrate\d6;
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
/**
* Tests D6 vocabulary source plugin.
@@ -39,6 +40,7 @@ class VocabularyTest extends MigrateSqlSourceTestCase {
'module' => 'taxonomy',
'weight' => 0,
'node_types' => ['page', 'article'],
+ 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
],
[
'vid' => 2,
@@ -53,6 +55,7 @@ class VocabularyTest extends MigrateSqlSourceTestCase {
'module' => 'taxonomy',
'weight' => 0,
'node_types' => ['article'],
+ 'cardinality' => 1,
],
];