Pārlūkot izejas kodu

popsu_migrate: D7ParagrapheTextsProgramme replaced by on the fly paragraphe creation

bach 4 gadi atpakaļ
vecāks
revīzija
eba6068747

+ 21 - 12
web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_programme.yml

@@ -40,17 +40,27 @@ process:
     default_value: 'wysiwyg'
 
   # https://understanddrupal.com/articles/introduction-paragraphs-migrations-drupal
-  pseudo_field_textes:
-    plugin: migration_lookup
-    migration: d7_paragraphe_texts_programme
-    source: text_paragraphe_id
-  field_textes:
-    plugin: sub_process
-    source:
-      - '@pseudo_field_textes'
-    process:
-      target_id: '0'
-      target_revision_id: '1'
+  # pseudo_field_textes:
+  #   plugin: migration_lookup
+  #   migration: d7_paragraphe_texts_programme
+  #   source: text_paragraphe_id
+  # field_textes:
+  #   plugin: sub_process
+  #   source:
+  #     - '@pseudo_field_textes'
+  #   process:
+  #     target_id: '0'
+  #     target_revision_id: '1'
+
+  # field_textes:
+  #   plugin: sub_process
+  #   source:
+  #     - text_paragraphe
+  #   process:
+  #     target_id: '0'
+  #     target_revision_id: '1'
+
+  field_textes: text_paragraphe
 
   # field_popsu_special_insert_intro
   # field_popsu_special_insert
@@ -75,4 +85,3 @@ migration_dependencies:
   required:
     - d7_allpublicfiles
     - d7_users
-    - d7_paragraphe_texts_programme

+ 0 - 38
web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_paragraphe_texts_programme.yml

@@ -1,38 +0,0 @@
-id: d7_paragraphe_texts_programme
-label: Paragraphe texts Programme
-migration_group: popsu
-audit: true
-migration_tags:
-  - Drupal 7
-  - Content
-  - Popsu
-
-source:
-  plugin: d7_paragraphe_texts_programme
-  node_type: popsu_special
-  batch_size: 500
-  ids:
-    nid:
-      type: integer
-
-destination:
-  plugin: 'entity_reference_revisions:paragraph'
-  default_bundle: textes
-
-process:
-  # created: created
-  # changed: changed
-
-  uid:
-    plugin: default_value
-    default_value: 34
-
-  'field_texte/value': text
-  'field_texte/summary': text_summary
-
-  field_titre: title
-
-migration_dependencies:
-  required:
-    - d7_allpublicfiles
-    - d7_users

+ 7 - 21
web/modules/custom/popsu_migrate/popsu_migrate.info.yml

@@ -12,25 +12,11 @@ dependencies:
   # - drupal:migrate_drupal_multilingual
   # - drupal:field_group_migrate
 
+# USING ```drush dre popsu_migrate``` instead of that
 # https://www.liip.ch/en/blog/using-the-new-drupal-8-migration-api-module
-config_devel:
- install:
-  - migrate_plus.migration_group.d7_popsu
-  - migrate_plus.migration.d7_allpublicfiles
-  # - migrate_plus.migration.d7_users
-  # - migrate_plus.migration.d7_taxonomy_term_company
-  # - migrate_plus.migration.d7_uc_roles_license
-  # - migrate_plus.migration.d7_simplenews_subscribers
-  # - migrate_plus.migration.d7_node_article
-  # - migrate_plus.migration.d7_simplenews_nodes
-  # - migrate_plus.migration.d7_node_materiau
-  # - migrate_plus.migration.d7_node_materiau_i18n
-  # - migrate_plus.migration.d7_node_article_i18n
-  # - migrate_plus.migration.d7_user_profile
-  # - migrate_plus.migration.d7_taxonomy_term_showroom
-  # - migrate_plus.migration.d7_taxonomy_term_tags_i18n
-  # - migrate_plus.migration.d7_taxonomy_term_tags
-  # - migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n
-  # - migrate_plus.migration.d7_taxonomy_term_thesaurus
-  # - migrate_plus.migration.d7_flaglists
-  # - migrate_plus.migration.d7_flaglistitems
+# config_devel:
+#  install:
+#   - migrate_plus.migration_group.d7_popsu
+#   - migrate_plus.migration.d7_allpublicfiles
+#   - migrate_plus.migration.d7_users
+#   - migrate_plus.migration.d7_node_programme

+ 37 - 3
web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeProgramme.php

@@ -5,6 +5,7 @@ namespace Drupal\popsu_migrate\Plugin\migrate\source;
 
 use Drupal\migrate\Row;
 use Drush\Drush;
+use Drupal\paragraphs\Entity\Paragraph;
 
 // use Drupal\popsu_migrate\Plugin\migrate\source\D7Programme;
 
@@ -18,6 +19,22 @@ use Drush\Drush;
  */
 class D7NodeProgramme extends D7Programme {
 
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    $query = parent::query($row);
+
+    // field_popsu_special_typetaxo 31 (Acueile)
+    $query->leftJoin('field_revision_field_popsu_special_typetaxo', 'ff', 'ff.revision_id = n.vid');
+    $query->fields('ff', [
+      'field_popsu_special_typetaxo_tid'
+    ]);
+    $query->condition('ff.field_popsu_special_typetaxo_tid', 31);
+
+    return $query;
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -48,14 +65,31 @@ class D7NodeProgramme extends D7Programme {
     $row->setSourceProperty('body', $body[0]['value']);
     $row->setSourceProperty('body_summary', $body[0]['summary']);
 
-    // texts (migration_lookup)
-    $row->setSourceProperty('text_paragraphe_id', $nid);
-
     // associateds
     $associateds = $this->getAssociatedSpecial($field_popsu_special_popsu_tid);
     Drush::output()->writeln(dump($associateds));
 
+    // texts (migration_lookup)
+    $text = $row->getSourceProperty('field_popsu_special_text');
+    $text[0]['format'] = 'wysiwyg';
+    $p = Paragraph::create(['type' => 'textes']);
+    $p->set('field_texte', $text)
+      ->set('field_titre', $row->getSourceProperty('title'))
+      ->isNew();
+    $p->save();
+
+    $text_paragraphe = array(
+      array(
+        'target_id' => $p->id(),
+        'target_revision_id' => $p->getRevisionId(),
+      ),
+    );
+    $row->setSourceProperty('text_paragraphe', $text_paragraphe);
+
+    // Sous partie
+
     // fichiers
+    // files from current node
     $fichiers = array();
     foreach ($row->getSourceProperty('field_popsu_special_insert') as $value) {
       $fichiers[] = $value;

+ 0 - 42
web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7PargrapheTextsProgramme.php

@@ -1,42 +0,0 @@
-<?php
-// https://understanddrupal.com/articles/how-debug-drupal-migrations-part-2
-
-namespace Drupal\popsu_migrate\Plugin\migrate\source;
-
-use Drupal\migrate\Row;
-use Drush\Drush;
-
-// use Drupal\popsu_migrate\Plugin\migrate\source\D7Programme;
-
-/**
- * Drupal 7 node source from database.
- *
- * @MigrateSource(
- *   id = "d7_paragraphe_texts_programme",
- *   source_module = "node"
- * )
- */
-class D7PargrapheTextsProgramme extends D7Programme {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function prepareRow(Row $row) {
-    $nid = $row->getSourceProperty('nid');
-    $vid = $row->getSourceProperty('vid');
-    $type = $row->getSourceProperty('type');
-
-    // Get Field API field values.
-    foreach ($this->getFields('node', $type) as $field_name => $field) {
-      $row->setSourceProperty($field_name, $this->getFieldValues('node', $field_name, $nid, $vid, NULL));
-    }
-
-    // texts
-    $text = $row->getSourceProperty('field_popsu_special_text');
-    $row->setSourceProperty('text', $text[0]['value']);
-    $row->setSourceProperty('text_summary', $text[0]['summary']);
-
-    return parent::prepareRow($row);
-  }
-
-}

+ 6 - 6
web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7Programme.php

@@ -100,12 +100,12 @@ class D7Programme extends FieldableEntity {
       $query->condition('n.type', $this->configuration['node_type']);
     }
 
-    // field_popsu_special_typetaxo 31 (Acueile)
-    $query->leftJoin('field_revision_field_popsu_special_typetaxo', 'ff', 'ff.revision_id = n.vid');
-    $query->fields('ff', [
-      'field_popsu_special_typetaxo_tid'
-    ]);
-    $query->condition('ff.field_popsu_special_typetaxo_tid', 31);
+    // // field_popsu_special_typetaxo 31 (Acueile)
+    // $query->leftJoin('field_revision_field_popsu_special_typetaxo', 'ff', 'ff.revision_id = n.vid');
+    // $query->fields('ff', [
+    //   'field_popsu_special_typetaxo_tid'
+    // ]);
+    // $query->condition('ff.field_popsu_special_typetaxo_tid', 31);
 
     return $query;
   }