Browse Source

fixed simplenews subscribers without account migration

bach 2 years ago
parent
commit
fc85755ad1
26 changed files with 242 additions and 31 deletions
  1. 3 1
      config/sync/migrate_plus.migration.d7_allpublicfiles.yml
  2. 3 1
      config/sync/migrate_plus.migration.d7_flaglistitems.yml
  3. 3 1
      config/sync/migrate_plus.migration.d7_flaglists.yml
  4. 3 1
      config/sync/migrate_plus.migration.d7_node_article.yml
  5. 3 1
      config/sync/migrate_plus.migration.d7_node_article_i18n.yml
  6. 3 1
      config/sync/migrate_plus.migration.d7_node_materiau.yml
  7. 3 1
      config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml
  8. 4 5
      config/sync/migrate_plus.migration.d7_simplenews_nodes.yml
  9. 6 6
      config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml
  10. 46 0
      config/sync/migrate_plus.migration.d7_simplenews_subscribers_notuser.yml
  11. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml
  12. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml
  13. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml
  14. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml
  15. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml
  16. 3 1
      config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml
  17. 3 1
      config/sync/migrate_plus.migration.d7_uc_roles_license.yml
  18. 3 1
      config/sync/migrate_plus.migration.d7_user_profile.yml
  19. 3 1
      config/sync/migrate_plus.migration.d7_user_profile_customer.yml
  20. 3 1
      config/sync/migrate_plus.migration.d7_users.yml
  21. 3 1
      config/sync/migrate_plus.migration_group.d7_materio.yml
  22. 2 1
      web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml
  23. 55 0
      web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers_notuser.yml
  24. 1 0
      web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php
  25. 73 0
      web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribersNotUser.php
  26. 1 1
      web/themes/custom/materiotheme/assets/dist/report.html

+ 3 - 1
config/sync/migrate_plus.migration.d7_allpublicfiles.yml

@@ -1,7 +1,9 @@
-uuid: 35406e7f-b9ca-4a27-8730-ffdafc3bd897
+uuid: dcb4548c-dc78-4a94-95d3-87bbe043c53b
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: _R1mGCGtQpx6FBB0Ar7k7M5nPIVY1-SMuCtcAd34XuE
 id: d7_allpublicfiles
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_flaglistitems.yml

@@ -1,7 +1,9 @@
-uuid: 07754b1c-1ce9-4395-b445-52484677fd77
+uuid: eeca64cb-9c3d-40c4-a9f7-8f32cfb02e0b
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: f85wgi1X5OQcul-MaFHfwTnRX0UGYadvMix99y4rc_s
 id: d7_flaglistitems
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_flaglists.yml

@@ -1,7 +1,9 @@
-uuid: 7165e9a0-98d6-4655-854e-7597a979d395
+uuid: 758a1117-9a7a-42ab-8d6e-df83db7a9646
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: 7tTvUUvJgPn4PJeTmH4OmGkL5mWkCZhIJqAxxVaCHaM
 id: d7_flaglists
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_node_article.yml

@@ -1,7 +1,9 @@
-uuid: 9237cd40-dcf6-4a20-a0ed-2f65ff95779d
+uuid: f8fd027f-4b95-4f96-81dd-0fb6a933f1d8
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: bbML9CDOadmNncab8Nqeqe8ALVFBUdCAiAoLh5GjDqY
 id: d7_node_article
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_node_article_i18n.yml

@@ -1,7 +1,9 @@
-uuid: 6612e657-4f64-40e1-8591-293dddb08cd3
+uuid: 5a8e274e-b409-46ee-bce1-43f29a6ab72c
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: aDaggGLk8KnIX-YP91umTDS_kJ0j2NDAtztR9nw1Fcw
 id: d7_node_article_i18n
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_node_materiau.yml

@@ -1,7 +1,9 @@
-uuid: b9ed8c19-1a6f-49f0-8a50-2ab147911f5b
+uuid: d28b7866-6f07-4f5f-8c3e-62b57c633565
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: RA4aoUpQgGNUksKkaxv71gcC0VWZP4Z68s5HK2wryMY
 id: d7_node_materiau
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml

@@ -1,7 +1,9 @@
-uuid: 22ace0c9-c4cb-46d0-9c94-9198430091bb
+uuid: e9e0341d-d155-456f-a1f0-6a348afef8b1
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: dLH0GM4buVtGtvkuO_4CHo-pqAx-QwMdk60cWsYv8qY
 id: d7_node_materiau_i18n
 class: null
 field_plugin_method: null

+ 4 - 5
config/sync/migrate_plus.migration.d7_simplenews_nodes.yml

@@ -1,10 +1,9 @@
-uuid: d8149f6f-aeec-46cd-9eb1-79a906e3c42e
+uuid: bba71567-126c-45dd-87b7-c64cd7cb706e
 langcode: en
 status: true
-dependencies:
-  module:
-    - migrate_drupal
-    - simplenews
+dependencies: {  }
+_core:
+  default_config_hash: sHpTuBlN2_eBjg6NI88UARG8mHYLBZxKQ1iJgW1mdEM
 id: d7_simplenews_nodes
 class: null
 field_plugin_method: null

+ 6 - 6
config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml

@@ -1,10 +1,9 @@
-uuid: d55ad36d-4c3e-4b0b-b46e-16ce8c0c9e3a
+uuid: 106d0615-4fd1-4182-b306-f663e6dad3db
 langcode: en
 status: true
-dependencies:
-  module:
-    - migrate_drupal
-    - simplenews
+dependencies: {  }
+_core:
+  default_config_hash: W8YQ0kBFIChTQEAaLnhWJDf3lzzW7B8_J4qWZXMEOwg
 id: d7_simplenews_subscribers
 class: null
 field_plugin_method: null
@@ -22,9 +21,10 @@ process:
   status: activated
   mail: mail
   uid:
-    plugin: migration
+    plugin: migration_lookup
     migration: d7_users
     source: uid
+    no_stub: true
   langcode: language
   changes: changes
   created: created

+ 46 - 0
config/sync/migrate_plus.migration.d7_simplenews_subscribers_notuser.yml

@@ -0,0 +1,46 @@
+uuid: 14686961-3fa4-4c64-8c0b-eec1a7f8e55c
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: IuyCGWzXRebeOJYvS2Fwij8LGbYufG0FyjkOKZrTZLQ
+id: d7_simplenews_subscribers_notuser
+class: null
+field_plugin_method: null
+cck_plugin_method: null
+migration_tags:
+  - 'Drupal 7'
+  - Content
+  - Materio
+migration_group: d7_materio
+label: 'Simplenews subscribers (without user drupal accompte)'
+source:
+  plugin: d7_simplenews_subscribers_notuser
+process:
+  id: snid
+  status: activated
+  mail: mail
+  uid: uid
+  langcode: language
+  changes: changes
+  created: created
+  subscriptions:
+    plugin: iterator
+    source: subscriptions
+    process:
+      target_id:
+        plugin: static_map
+        source: newsletter_id
+        map:
+          6585: test
+          6374: ze_daily_materio_
+          6274: materio_newsletter
+          7881: companies
+      status: status
+      timestamp: timestamp
+      source: source
+destination:
+  plugin: 'entity:simplenews_subscriber'
+migration_dependencies:
+  required:
+    - d7_users

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml

@@ -1,7 +1,9 @@
-uuid: 65c9219c-ff6e-48c1-8edf-cefa85ff722c
+uuid: 9b7337ca-b3ad-42f4-aca4-fe874fe78d87
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: 6zRUA88z28s1EKQh9eQnvj6ftzTg5ADqwr8PNRuQjFI
 id: d7_taxonomy_term_company
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml

@@ -1,7 +1,9 @@
-uuid: 8826255f-8105-4e33-ad41-2f012a7f666c
+uuid: de4730ea-b6c6-4df5-b220-9eb5ffee2f1e
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: Oip5TPNIP8RxEmtUffgwo8AuBwxsYGMdECAxEqmnCiA
 id: d7_taxonomy_term_showroom
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml

@@ -1,7 +1,9 @@
-uuid: 1b656b5e-984d-417a-b499-93694ba57824
+uuid: b732b3c8-8087-4d3f-8b75-ffc3f0103155
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: ANwnCRB6FgqpsP5cu1RdbPcXBem0E0qSi-7q3RZjmp8
 id: d7_taxonomy_term_tags
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml

@@ -1,7 +1,9 @@
-uuid: 8585beee-de2f-455e-a5b7-9f87faabc12f
+uuid: 4161661a-40f1-4d3a-9b4a-564d8853ca6e
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: IVIXijd3hu4c6IYCkPsT81h334IVvQ1mRLonwSCegVc
 id: d7_taxonomy_term_tags_i18n
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml

@@ -1,7 +1,9 @@
-uuid: 1ea1ed08-74d8-4c1d-a2a4-e6b66d55a5cb
+uuid: 0df3858a-60e5-4f8b-afcc-187a06897b29
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: 55XmBttIA63YE74GI20R9E_synOOR7E6yObM-HVGKSw
 id: d7_taxonomy_term_thesaurus
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml

@@ -1,7 +1,9 @@
-uuid: c173dfca-2339-42e4-9084-b43fc8195601
+uuid: 8e649162-a155-40a3-b401-8483e9777e36
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: dEUkhkROYAKjrQDitdMPb_P8qPFSTRVEypMkdvRHkdg
 id: d7_taxonomy_term_thesaurus_i18n
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_uc_roles_license.yml

@@ -1,4 +1,4 @@
-uuid: 639535d6-8438-46f1-b3d1-e418be168295
+uuid: eafb7b89-8a87-463e-8358-40a908c646d8
 langcode: en
 status: true
 dependencies:
@@ -6,6 +6,8 @@ dependencies:
     module:
       - commerce_product
       - commerce_license
+_core:
+  default_config_hash: Cww-kYUSfiHIC4eVeT_hxEweTOd3JMHR8VhZtlsuBNo
 id: d7_uc_roles_license
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_user_profile.yml

@@ -1,4 +1,4 @@
-uuid: 31329805-ff63-4a85-bbc6-71d7ce63b453
+uuid: b395329b-ca8f-4ac4-9a1c-2e9402da1606
 langcode: en
 status: true
 dependencies:
@@ -7,6 +7,8 @@ dependencies:
       - migrate_plus
       - migrate_tools
       - profile
+_core:
+  default_config_hash: e1Ovv7AKK2jcslO5T8MUMLNWeIQZuRJr_IX21nWvZMY
 id: d7_user_profile
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_user_profile_customer.yml

@@ -1,4 +1,4 @@
-uuid: efadb1c8-1ff5-4a7c-9a1f-2b9c269a8362
+uuid: add4ae12-6fd2-47fe-8be0-0f4599f491ef
 langcode: en
 status: true
 dependencies:
@@ -7,6 +7,8 @@ dependencies:
       - migrate_plus
       - migrate_tools
       - profile
+_core:
+  default_config_hash: Gs2PxO-2VEZGZYcaulvoljvA7t3m9Z_oSh9R8giUO3U
 id: d7_user_profile_customer
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration.d7_users.yml

@@ -1,7 +1,9 @@
-uuid: 73a8209b-f751-4bcc-90ad-aabbfb463fd8
+uuid: 952c90cc-0ab6-4638-82db-a7484cd11917
 langcode: en
 status: true
 dependencies: {  }
+_core:
+  default_config_hash: AglNUIV8aPCwgbTf8P3TNC2TmZkCXgPmEZGMG_Ex2Ms
 id: d7_users
 class: null
 field_plugin_method: null

+ 3 - 1
config/sync/migrate_plus.migration_group.d7_materio.yml

@@ -1,4 +1,4 @@
-uuid: dd6f01ed-a2ee-4114-bf01-5b8a34f79016
+uuid: 1a2e415f-0065-4cf0-b2d4-e218eeb9dec6
 langcode: en
 status: true
 dependencies:
@@ -7,6 +7,8 @@ dependencies:
       - migrate_plus
       - migrate_tools
       - materio_migrate
+_core:
+  default_config_hash: tbcV0glxU9BqeXcSUn9ZKXnOPW-C2v8Q-shvIJ2xNG8
 id: d7_materio
 label: 'D7 Materio'
 description: 'Drupal 7 materio content migration to Drupal 8.'

+ 2 - 1
web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml

@@ -24,9 +24,10 @@ process:
   mail: mail
   # uid: uid
   uid:
-    plugin: migration
+    plugin: migration_lookup
     migration: d7_users
     source: uid
+    no_stub: true
 
   langcode: language
   changes: changes

+ 55 - 0
web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers_notuser.yml

@@ -0,0 +1,55 @@
+id: d7_simplenews_subscribers_notuser
+migration_group: d7_materio
+dependencies:
+  # config:
+  #   - migrate.migration.d7_simplenews_newsletter
+  module:
+    - migrate_drupal
+    - simplenews
+label: Simplenews subscribers (without user drupal accompte)
+migration_tags:
+  - Drupal 7
+  - Content
+  - Materio
+
+source:
+  plugin: d7_simplenews_subscribers_notuser
+  # high_water_property:
+  #   name: changes
+  #   alias: s
+
+process:
+  id: snid
+  status: activated
+  mail: mail
+  uid: uid
+
+  langcode: language
+  changes: changes
+  created: created
+
+  subscriptions:
+    plugin: iterator
+    source: subscriptions
+    process:
+      target_id:
+        plugin: static_map
+        source: newsletter_id
+        map:
+          6585: "test"
+          6374: "ze_daily_materio_"
+          6274: "materio_newsletter"
+          7881: "companies"
+        # plugin: migration
+        # migration: d7_simplenews_newsletter
+        # source: newsletter_id
+      status: status
+      timestamp: timestamp
+      source: source
+
+destination:
+  plugin: entity:simplenews_subscriber
+
+migration_dependencies:
+  required:
+    - d7_users

+ 1 - 0
web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php

@@ -43,6 +43,7 @@ class D7SimplenewsSubscribers extends DrupalSqlBase {
   public function query() {
     return $this->select('simplenews_subscriber', 's')
       ->fields('s')
+      ->condition('s.uid', 0, '<>')
       ->orderBy('snid');
   }
 

+ 73 - 0
web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribersNotUser.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace Drupal\materio_migrate\Plugin\migrate\source;
+
+use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+
+/**
+ * Migration source for Subscriber entries in D7.
+ *
+ * @MigrateSource(
+ *   id = "d7_simplenews_subscribers_notuser",
+ *   source_module = "simplenews"
+ * )
+ */
+class D7SimplenewsSubscribersNotUser extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return [
+      'snid' => $this->t('Subscriber ID'),
+      'activated' => $this->t('Activated'),
+      'mail' => $this->t("Subscriber's e-mail address"),
+      'uid' => $this->t('Corresponding user'),
+      'language' => $this->t('Language'),
+      'changes' => $this->t('Pending unconfirmed subscription changes'),
+      'created' => $this->t('Time of creation'),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    return ['snid' => ['type' => 'integer']];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    return $this->select('simplenews_subscriber', 's')
+      ->fields('s')
+      ->condition('s.uid', 0)
+      ->orderBy('snid');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    $result = parent::prepareRow($row);
+
+    $version = $this->getModuleSchemaVersion('simplenews');
+    $newsletter_id_field = 'newsletter_id';
+    if ($version >= 7000 & $version < 7200) {
+      $newsletter_id_field = 'tid';
+    }
+
+    // Add associated data from the subscriptions table.
+    $q = $this->select('simplenews_subscription', 'sub');
+    $q->addField('sub', $newsletter_id_field, 'newsletter_id');
+    $q->fields('sub', ['status', 'timestamp', 'source']);
+    $q->condition('sub.snid', $row->getSourceProperty('snid'));
+    $subscriptions = $q->execute()->fetchAllAssoc('newsletter_id');
+    $row->setSourceProperty('subscriptions', $subscriptions);
+
+    return $result;
+  }
+
+}

File diff suppressed because it is too large
+ 1 - 1
web/themes/custom/materiotheme/assets/dist/report.html


Some files were not shown because too many files changed in this diff