From 2b0904f0b459c794d80c3aee4115bdc327bd2124 Mon Sep 17 00:00:00 2001 From: bach Date: Mon, 19 Apr 2021 14:35:28 +0200 Subject: [PATCH] =?UTF-8?q?popsu=5Fmigrate:=20D7NodeTheme=20themes=20et=20?= =?UTF-8?q?projets=20li=C3=A9s=20refactored?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...grate_plus.migration.d7_allpublicfiles.yml | 2 +- ...grate_plus.migration.d7_node_programme.yml | 2 +- .../migrate_plus.migration.d7_node_projet.yml | 2 +- .../migrate_plus.migration.d7_node_theme.yml | 17 ++++++++----- ....migration.d7_taxonomy_term_type_theme.yml | 2 +- .../sync/migrate_plus.migration.d7_users.yml | 2 +- .../migrate_plus.migration_group.popsu.yml | 2 +- .../migrate_plus.migration.d7_node_theme.yml | 17 ++++++++----- .../src/Plugin/migrate/source/D7NodeTheme.php | 25 +++++++++++++++++-- 9 files changed, 51 insertions(+), 20 deletions(-) diff --git a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml index 150a782d..50b6feb9 100644 --- a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml +++ b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml @@ -1,4 +1,4 @@ -uuid: d8e55680-7f11-4e58-9e8a-892ec4ec9191 +uuid: ae496e79-c2b0-483b-9dc2-b04f29237322 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_programme.yml b/config/sync/migrate_plus.migration.d7_node_programme.yml index 34a17135..d015f66c 100644 --- a/config/sync/migrate_plus.migration.d7_node_programme.yml +++ b/config/sync/migrate_plus.migration.d7_node_programme.yml @@ -1,4 +1,4 @@ -uuid: b03a76ce-4cc8-4567-85f4-ec6740c3e47b +uuid: 6fa024f8-38b0-48af-886a-e3f1575e8873 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_projet.yml b/config/sync/migrate_plus.migration.d7_node_projet.yml index 6640a776..fc43f353 100644 --- a/config/sync/migrate_plus.migration.d7_node_projet.yml +++ b/config/sync/migrate_plus.migration.d7_node_projet.yml @@ -1,4 +1,4 @@ -uuid: 3bbf9aad-5230-4660-8d1a-45d14b44a801 +uuid: 935e3f08-247d-4c85-8a42-6c35daa0ddf7 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_theme.yml b/config/sync/migrate_plus.migration.d7_node_theme.yml index 1114ac42..4d756a62 100644 --- a/config/sync/migrate_plus.migration.d7_node_theme.yml +++ b/config/sync/migrate_plus.migration.d7_node_theme.yml @@ -1,9 +1,9 @@ -uuid: 479b05a2-6377-46f9-976d-a4d79b4cc6ac +uuid: ff918ee4-59b1-4139-a96d-f68bd7036274 langcode: fr status: true dependencies: { } _core: - default_config_hash: WJ4CqAlkn09bHQXqYqK8-kat9Esdlw-iXGRk0IeX97c + default_config_hash: zBJRTgJ9e5p4ZBc0jDlNp3eynstu43FtkG96jez6pQU id: d7_node_theme class: null field_plugin_method: null @@ -57,11 +57,16 @@ process: process: target_id: plugin: migration_lookup - migration: - - d7_node_projet - - d7_node_theme + migration: d7_node_theme + source: nid + field_projets_lies: + plugin: sub_process + source: field_projets_lies + process: + target_id: + plugin: migration_lookup + migration: d7_node_projet source: nid - stub_id: d7_node_projet destination: plugin: 'entity:node' migration_dependencies: diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_type_theme.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_type_theme.yml index 65ed4db1..7bd8bd21 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_type_theme.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_type_theme.yml @@ -1,4 +1,4 @@ -uuid: b0b00974-3194-4e57-89b3-0cb83fd2d24f +uuid: d8151c69-445f-489e-ac82-372fe5d5ca9e langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_users.yml b/config/sync/migrate_plus.migration.d7_users.yml index 5b40e134..99fd7e1b 100644 --- a/config/sync/migrate_plus.migration.d7_users.yml +++ b/config/sync/migrate_plus.migration.d7_users.yml @@ -1,4 +1,4 @@ -uuid: 0ac95398-8da2-4e5a-968d-6db44f0b9b86 +uuid: 1cea8a55-906b-4d00-81d8-a35ec6657e17 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration_group.popsu.yml b/config/sync/migrate_plus.migration_group.popsu.yml index fe4557dc..91434979 100644 --- a/config/sync/migrate_plus.migration_group.popsu.yml +++ b/config/sync/migrate_plus.migration_group.popsu.yml @@ -1,4 +1,4 @@ -uuid: 8d6222b6-cd0a-4679-b047-2ac9b3a079be +uuid: 06f1809a-7f86-4527-a5d7-1ad2ce7c71c7 langcode: fr status: true dependencies: diff --git a/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_theme.yml b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_theme.yml index 9fb842ea..567e3aa0 100644 --- a/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_theme.yml +++ b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_theme.yml @@ -62,16 +62,21 @@ process: process: target_id: plugin: migration_lookup - migration: - - d7_node_projet - - d7_node_theme + migration: d7_node_theme + source: nid + + field_projets_lies: + plugin: sub_process + source: field_projets_lies + process: + target_id: + plugin: migration_lookup + migration: d7_node_projet source: nid - # stub_id is not working :( - stub_id: d7_node_projet migration_dependencies: required: - d7_allpublicfiles - d7_users - d7_taxonomy_term_type_theme - - d7_node_projet + # - d7_node_projet diff --git a/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeTheme.php b/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeTheme.php index 547b2a32..8f4439db 100644 --- a/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeTheme.php +++ b/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeTheme.php @@ -169,10 +169,27 @@ class D7NodeTheme extends FieldableEntity { # Themes liƩs // merge the two ppossible field source $field_themes_lies = array(); + $field_projets_lies = array(); if ($field_popsu_themloc_lies = $row->getSourceProperty('field_popsu_themloc_lies')) { // Drush::output()->writeln(dump($field_popsu_themloc_lies)); foreach ($field_popsu_themloc_lies as $key => $value) { - $field_themes_lies[] = $value; + // check if theme + $q = $this->select('node', 'n') + ->fields('n', ['nid','type']) + ->condition('n.nid', $value['nid']) + ->condition('n.type', ['popsu_theme_local', 'popsu_projet'], 'IN'); + $res = $q->execute()->fetchAll(); + if (!empty($res)) { + Drush::output()->writeln(dump($res)); + switch ($res[0]['type']) { + case 'popsu_theme_local': + $field_themes_lies[] = $value; + break; + case 'popsu_projet': + $field_projets_lies[] = $value; + break; + } + } } } if ($field_popsu_themloc_comparatif = $row->getSourceProperty('field_popsu_themloc_comparatif')) { @@ -182,9 +199,13 @@ class D7NodeTheme extends FieldableEntity { } } if (!empty($field_themes_lies)) { - Drush::output()->writeln(dump($field_themes_lies)); + // Drush::output()->writeln(dump($field_themes_lies)); $row->setSourceProperty('field_themes_lies', $field_themes_lies); } + if (!empty($field_projets_lies)) { + // Drush::output()->writeln(dump($field_themes_lies)); + $row->setSourceProperty('field_projets_lies', $field_projets_lies); + } return parent::prepareRow($row); }