From c1b92143ef4ceec60002314a92227607cf21408a Mon Sep 17 00:00:00 2001 From: bach Date: Wed, 21 Apr 2021 11:59:10 +0200 Subject: [PATCH] popsu_migrate: D7NodeActu ok --- ...ty_form_display.node.actualite.default.yml | 32 +- ...ty_view_display.node.actualite.default.yml | 18 +- ...ity_view_display.node.actualite.teaser.yml | 2 + ....field.node.actualite.field_dates_actu.yml | 15 +- .../field.field.node.actualite.field_memo.yml | 19 ++ .../field.storage.node.field_dates_actu.yml | 13 +- ...grate_plus.migration.d7_allpublicfiles.yml | 2 +- .../migrate_plus.migration.d7_node_actu.yml | 92 ++++++ ...grate_plus.migration.d7_node_evenement.yml | 6 +- ...grate_plus.migration.d7_node_programme.yml | 2 +- .../migrate_plus.migration.d7_node_projet.yml | 2 +- ...grate_plus.migration.d7_node_ressource.yml | 2 +- .../migrate_plus.migration.d7_node_static.yml | 2 +- .../migrate_plus.migration.d7_node_theme.yml | 2 +- ...us.migration.d7_taxonomy_term_type_doc.yml | 2 +- ....migration.d7_taxonomy_term_type_theme.yml | 2 +- ..._plus.migration.d7_taxonomy_term_ville.yml | 2 +- .../sync/migrate_plus.migration.d7_users.yml | 2 +- .../migrate_plus.migration_group.popsu.yml | 2 +- config/sync/views.view.content.yml | 277 ++++++++---------- .../migrate_plus.migration.d7_node_actu.yml | 121 ++++++++ ...grate_plus.migration.d7_node_evenement.yml | 2 - .../src/Plugin/migrate/source/D7NodeActu.php | 187 ++++++++++++ 23 files changed, 598 insertions(+), 208 deletions(-) create mode 100644 config/sync/field.field.node.actualite.field_memo.yml create mode 100644 config/sync/migrate_plus.migration.d7_node_actu.yml create mode 100644 web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_actu.yml create mode 100644 web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeActu.php diff --git a/config/sync/core.entity_form_display.node.actualite.default.yml b/config/sync/core.entity_form_display.node.actualite.default.yml index ef54e5d2..207d15bf 100644 --- a/config/sync/core.entity_form_display.node.actualite.default.yml +++ b/config/sync/core.entity_form_display.node.actualite.default.yml @@ -8,6 +8,7 @@ dependencies: - field.field.node.actualite.field_evenements_lies - field.field.node.actualite.field_fichier - field.field.node.actualite.field_image + - field.field.node.actualite.field_memo - field.field.node.actualite.field_programme - field.field.node.actualite.field_projet - field.field.node.actualite.field_ressources_liees @@ -16,10 +17,10 @@ dependencies: - image.style.thumbnail - node.type.actualite module: + - datetime_range - field_group - file - image - - smart_date - text third_party_settings: field_group: @@ -27,6 +28,7 @@ third_party_settings: children: - promote - status + - field_memo parent_name: '' weight: 200 format_type: details_sidebar @@ -56,10 +58,10 @@ third_party_settings: group_pri: children: - field_sous_titre + - field_dates_actu - field_programme - field_projet - field_theme - - field_dates_actu - body parent_name: group_tabs weight: 20 @@ -118,14 +120,10 @@ content: third_party_settings: { } region: content field_dates_actu: - weight: 4 - settings: - modal: false - default_duration: 60 - default_duration_increments: "30\n60|1 hour\n90\n120|2 hours\ncustom" - show_extra: true + weight: 1 + settings: { } third_party_settings: { } - type: smartdate_default + type: daterange_default region: content field_evenements_lies: weight: 129 @@ -152,8 +150,16 @@ content: third_party_settings: { } type: image_image region: content + field_memo: + weight: 17 + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + type: string_textarea + region: content field_programme: - weight: 1 + weight: 2 settings: match_operator: CONTAINS match_limit: 10 @@ -163,7 +169,7 @@ content: type: entity_reference_autocomplete region: content field_projet: - weight: 2 + weight: 3 settings: match_operator: CONTAINS match_limit: 10 @@ -191,7 +197,7 @@ content: type: string_textfield region: content field_theme: - weight: 3 + weight: 4 settings: match_operator: CONTAINS match_limit: 10 @@ -211,7 +217,7 @@ content: type: boolean_checkbox settings: display_label: true - weight: 120 + weight: 16 region: content third_party_settings: { } title: diff --git a/config/sync/core.entity_view_display.node.actualite.default.yml b/config/sync/core.entity_view_display.node.actualite.default.yml index 89870da2..9a779c1f 100644 --- a/config/sync/core.entity_view_display.node.actualite.default.yml +++ b/config/sync/core.entity_view_display.node.actualite.default.yml @@ -8,6 +8,7 @@ dependencies: - field.field.node.actualite.field_evenements_lies - field.field.node.actualite.field_fichier - field.field.node.actualite.field_image + - field.field.node.actualite.field_memo - field.field.node.actualite.field_programme - field.field.node.actualite.field_projet - field.field.node.actualite.field_ressources_liees @@ -15,9 +16,9 @@ dependencies: - field.field.node.actualite.field_theme - node.type.actualite module: + - datetime_range - file - image - - smart_date - text - user id: node.actualite.default @@ -33,16 +34,14 @@ content: third_party_settings: { } region: content field_dates_actu: - weight: 106 + weight: 114 label: above settings: - format: default - force_chronological: false - add_classes: 0 + separator: '-' format_type: medium timezone_override: '' third_party_settings: { } - type: smartdate_default + type: daterange_default region: content field_evenements_lies: weight: 109 @@ -69,6 +68,13 @@ content: third_party_settings: { } type: image region: content + field_memo: + weight: 113 + label: above + settings: { } + third_party_settings: { } + type: basic_string + region: content field_programme: weight: 102 label: above diff --git a/config/sync/core.entity_view_display.node.actualite.teaser.yml b/config/sync/core.entity_view_display.node.actualite.teaser.yml index 3ca5ba54..c08bf11c 100644 --- a/config/sync/core.entity_view_display.node.actualite.teaser.yml +++ b/config/sync/core.entity_view_display.node.actualite.teaser.yml @@ -9,6 +9,7 @@ dependencies: - field.field.node.actualite.field_evenements_lies - field.field.node.actualite.field_fichier - field.field.node.actualite.field_image + - field.field.node.actualite.field_memo - field.field.node.actualite.field_programme - field.field.node.actualite.field_projet - field.field.node.actualite.field_ressources_liees @@ -41,6 +42,7 @@ hidden: field_evenements_lies: true field_fichier: true field_image: true + field_memo: true field_programme: true field_projet: true field_ressources_liees: true diff --git a/config/sync/field.field.node.actualite.field_dates_actu.yml b/config/sync/field.field.node.actualite.field_dates_actu.yml index efd7c3bb..2831f1fd 100644 --- a/config/sync/field.field.node.actualite.field_dates_actu.yml +++ b/config/sync/field.field.node.actualite.field_dates_actu.yml @@ -1,4 +1,4 @@ -uuid: b1acba14-ed54-4ff4-9a1e-69fb298c2e2f +uuid: cd269d00-7119-46ae-bfc2-25ad94067e76 langcode: fr status: true dependencies: @@ -6,21 +6,16 @@ dependencies: - field.storage.node.field_dates_actu - node.type.actualite module: - - smart_date + - datetime_range id: node.actualite.field_dates_actu field_name: field_dates_actu entity_type: node bundle: actualite -label: Dates +label: 'Dates actu' description: '' required: false translatable: false -default_value: - - - default_date_type: '' - default_date: '' - default_duration_increments: "30\r\n60|1 hour\r\n90\r\n120|2 hours\r\ncustom" - default_duration: 60 +default_value: { } default_value_callback: '' settings: { } -field_type: smartdate +field_type: daterange diff --git a/config/sync/field.field.node.actualite.field_memo.yml b/config/sync/field.field.node.actualite.field_memo.yml new file mode 100644 index 00000000..80c51412 --- /dev/null +++ b/config/sync/field.field.node.actualite.field_memo.yml @@ -0,0 +1,19 @@ +uuid: ec9af1cd-b8ad-4d60-969b-68a66d70815f +langcode: fr +status: true +dependencies: + config: + - field.storage.node.field_memo + - node.type.actualite +id: node.actualite.field_memo +field_name: field_memo +entity_type: node +bundle: actualite +label: memo +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: { } +field_type: string_long diff --git a/config/sync/field.storage.node.field_dates_actu.yml b/config/sync/field.storage.node.field_dates_actu.yml index b21a8ba5..1a0f3796 100644 --- a/config/sync/field.storage.node.field_dates_actu.yml +++ b/config/sync/field.storage.node.field_dates_actu.yml @@ -1,18 +1,19 @@ -uuid: f7e47b8a-6b86-4b1f-b91a-c577975f71d5 +uuid: a7efce6a-3f5b-41f5-a317-fdd388563b5d langcode: fr status: true dependencies: module: + - datetime_range - node - - smart_date id: node.field_dates_actu field_name: field_dates_actu entity_type: node -type: smartdate -settings: { } -module: smart_date +type: daterange +settings: + datetime_type: allday +module: datetime_range locked: false -cardinality: -1 +cardinality: 1 translatable: true indexes: { } persist_with_no_fields: false diff --git a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml index 2f165eb7..3cea816c 100644 --- a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml +++ b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml @@ -1,4 +1,4 @@ -uuid: cf4124c8-cc6b-450b-9ede-328076235970 +uuid: 6f7aa7cb-e247-4ad6-a69b-ae9d566168c7 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_actu.yml b/config/sync/migrate_plus.migration.d7_node_actu.yml new file mode 100644 index 00000000..89723752 --- /dev/null +++ b/config/sync/migrate_plus.migration.d7_node_actu.yml @@ -0,0 +1,92 @@ +uuid: 567d6005-ed2f-4492-8b9e-1e9257be0fe0 +langcode: fr +status: true +dependencies: { } +_core: + default_config_hash: I6GROOhFniRjxHdI9dtO9yVSViggMTS5H7jUOHZEMIU +id: d7_node_actu +class: null +field_plugin_method: null +cck_plugin_method: null +migration_tags: + - 'Drupal 7' + - Content + - Popsu +migration_group: popsu +label: 'Node actu' +source: + plugin: d7_node_actu + batch_size: 500 +process: + type: + plugin: default_value + default_value: actualite + created: created + changed: changed + uid: + plugin: default_value + default_value: 34 + title: title + field_sous_titre: field_popsu_actu_soustitre + promote: + plugin: default_value + default_value: 0 + source: field_popsu_actu_enhome + field_dates_actu: + - + plugin: skip_on_empty + method: process + source: field_date + - + plugin: sub_process + process: + value: + plugin: format_date + from_format: 'Y-m-d H:i:s' + to_format: 'Y-m-d\TH:i:s' + source: value + end_value: + plugin: format_date + from_format: 'Y-m-d H:i:s' + to_format: 'Y-m-d\TH:i:s' + source: end + timezone: + plugin: default_value + default_value: '' + body: + plugin: sub_process + source: field_popsu_actu_body + process: + value: value + summary: summary + format: + plugin: default_value + default_value: wysiwyg + field_fichier: + plugin: sub_process + source: field_popsu_actu_attachment + process: + target_id: + plugin: migration_lookup + migration: d7_allpublicfiles + source: fid + no_stub: true + display: display + description: description + field_image: + plugin: sub_process + source: field_popsu_actu_image + process: + target_id: + plugin: migration_lookup + migration: d7_allpublicfiles + source: fid + no_stub: true + alt: alt + title: title + field_memo: field_memo +destination: + plugin: 'entity:node' +migration_dependencies: + required: + - d7_allpublicfiles diff --git a/config/sync/migrate_plus.migration.d7_node_evenement.yml b/config/sync/migrate_plus.migration.d7_node_evenement.yml index 33c82e83..60846598 100644 --- a/config/sync/migrate_plus.migration.d7_node_evenement.yml +++ b/config/sync/migrate_plus.migration.d7_node_evenement.yml @@ -1,9 +1,9 @@ -uuid: be789f3f-d3d7-48c3-8a70-b93119076a41 +uuid: b03ae923-6ae9-4c80-ad37-e708198fa881 langcode: fr status: true dependencies: { } _core: - default_config_hash: xRLAUHUEsPu8KEzDWCJXTmDeJV_GjCcaFRfmeFVyngI + default_config_hash: MS8tsr-1_51NXldBPGyjMyJ0FirHg8jPH3btyD9bWbM id: d7_node_evenement class: null field_plugin_method: null @@ -92,5 +92,3 @@ destination: migration_dependencies: required: - d7_allpublicfiles - - d7_users - - d7_taxonomy_term_type_theme diff --git a/config/sync/migrate_plus.migration.d7_node_programme.yml b/config/sync/migrate_plus.migration.d7_node_programme.yml index 4851a26c..612e8b86 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: 59b95e8c-21fb-434f-b6a6-cc668e524c32 +uuid: 353b0f84-fc09-4f03-93f4-4db572c7599c 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 a19803e7..f318c3f3 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: cb12b218-4bf0-436d-9153-5031392c95de +uuid: e0e8b952-474b-4991-87b9-3dccf0c79810 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_ressource.yml b/config/sync/migrate_plus.migration.d7_node_ressource.yml index 20ee2ccd..e26e7375 100644 --- a/config/sync/migrate_plus.migration.d7_node_ressource.yml +++ b/config/sync/migrate_plus.migration.d7_node_ressource.yml @@ -1,4 +1,4 @@ -uuid: b153072c-b974-482e-9b41-64e4b696ee60 +uuid: ed533655-6d55-4cd6-9890-39feb2361701 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_static.yml b/config/sync/migrate_plus.migration.d7_node_static.yml index bc6a82d4..139ad83e 100644 --- a/config/sync/migrate_plus.migration.d7_node_static.yml +++ b/config/sync/migrate_plus.migration.d7_node_static.yml @@ -1,4 +1,4 @@ -uuid: 652e81fb-fd06-4257-90c1-8b34ff9f015b +uuid: 280c74af-f8a1-4ef4-9cd6-682742f37b55 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 67458496..e069099f 100644 --- a/config/sync/migrate_plus.migration.d7_node_theme.yml +++ b/config/sync/migrate_plus.migration.d7_node_theme.yml @@ -1,4 +1,4 @@ -uuid: e68b1dc2-d70d-4a89-a6c0-10507b257f83 +uuid: 0d6ed43f-4c5f-4002-b34e-2adb84dc5208 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_type_doc.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_type_doc.yml index 5f4245b9..d1a0f8ef 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_type_doc.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_type_doc.yml @@ -1,4 +1,4 @@ -uuid: df19211c-2485-44f6-bb2e-a92a6d5371d2 +uuid: d802decf-b5d4-4852-81ee-88c40649b37a langcode: fr status: true 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 55bfdf09..63a67942 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: e40f6f27-096f-4d03-a34f-afb8ae8be371 +uuid: 4f06f619-a8a0-4543-9165-3d66af1aa722 langcode: fr status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_ville.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_ville.yml index bf06d0f1..b22d89a7 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_ville.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_ville.yml @@ -1,4 +1,4 @@ -uuid: ce8a651c-fe72-4dad-b0c1-7661845c9ad2 +uuid: 897e00b7-08f2-4cbe-9ff1-cfb8a085ae4d 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 b1502cf2..bbb3a2a5 100644 --- a/config/sync/migrate_plus.migration.d7_users.yml +++ b/config/sync/migrate_plus.migration.d7_users.yml @@ -1,4 +1,4 @@ -uuid: 8844be88-0ac5-4855-82ff-04b601da338f +uuid: e59d3b15-98fa-499e-b7b8-9988f4176cd8 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 c446df72..9357da6c 100644 --- a/config/sync/migrate_plus.migration_group.popsu.yml +++ b/config/sync/migrate_plus.migration_group.popsu.yml @@ -1,4 +1,4 @@ -uuid: 042a1da3-e723-451c-91ba-d3770e0e5071 +uuid: b0e9db0b-3391-42d4-a80f-29ca99b706f2 langcode: fr status: true dependencies: diff --git a/config/sync/views.view.content.yml b/config/sync/views.view.content.yml index 11d4d8dc..7c5f8385 100644 --- a/config/sync/views.view.content.yml +++ b/config/sync/views.view.content.yml @@ -4,6 +4,7 @@ status: true dependencies: config: - field.storage.node.field_comparatifs_associes + - field.storage.node.field_dates_actu - field.storage.node.field_diaporama - field.storage.node.field_image - field.storage.node.field_memo @@ -33,6 +34,7 @@ dependencies: - entity_reference_revisions - image - node + - smart_date - taxonomy - user _core: @@ -89,12 +91,15 @@ display: node_bulk_form: node_bulk_form field_image: field_image title: title - field_sous_titre: title operations: title field_programme: field_programme field_projet: field_projet field_theme: field_theme + field_dates_actu: field_dates_actu + field_dates_actu_value: field_dates_actu_value + field_dates_actu_end_value: field_dates_actu_value status: status + promote: promote changed: changed field_memo: field_memo info: @@ -117,13 +122,6 @@ display: separator: '
' empty_column: false responsive: '' - field_sous_titre: - sortable: false - default_sort_order: asc - align: '' - separator: '' - empty_column: false - responsive: '' operations: align: '' separator: '' @@ -150,6 +148,25 @@ display: separator: '' empty_column: false responsive: '' + field_dates_actu: + align: '' + separator: '' + empty_column: false + responsive: '' + field_dates_actu_value: + sortable: true + default_sort_order: asc + align: '' + separator: '
' + empty_column: false + responsive: '' + field_dates_actu_end_value: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' status: sortable: true default_sort_order: asc @@ -157,6 +174,13 @@ display: separator: '' empty_column: false responsive: '' + promote: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' changed: sortable: true default_sort_order: desc @@ -5152,69 +5176,6 @@ display: settings: link_to_entity: true plugin_id: field - field_type_de_ressource: - id: field_type_de_ressource - table: node__field_type_de_ressource - field: field_type_de_ressource - relationship: none - group_type: group - admin_label: '' - label: 'Type de ressource' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - plugin_id: field operations: id: operations table: node @@ -5265,6 +5226,72 @@ display: hide_alter_empty: true destination: true plugin_id: entity_operations + field_dates_actu: + id: field_dates_actu + table: node__field_dates_actu + field: field_dates_actu + relationship: none + group_type: group + admin_label: '' + label: 'Dates actu' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: smartdate_duration + settings: + timezone_override: '' + format: date_only + force_chronological: 0 + add_classes: 0 + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field field_programme: id: field_programme table: node__field_programme @@ -5454,77 +5481,36 @@ display: separator: ', ' field_api_classes: false plugin_id: field - field_ressources_liees: - id: field_ressources_liees - table: node__field_ressources_liees - field: field_ressources_liees - relationship: none - group_type: group - admin_label: '' - label: Ressources + status: + id: status + table: node_field_data + field: status + label: État exclude: false alter: alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label + type: boolean settings: - link: true - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: ul - separator: ', ' - field_api_classes: false + format: custom + format_custom_true: Publié + format_custom_false: 'Non publié' plugin_id: field - field_poid: - id: field_poid - table: node__field_poid - field: field_poid + entity_type: node + entity_field: status + promote: + id: promote + table: node_field_data + field: promote relationship: none group_type: group admin_label: '' - label: Poid + label: Home exclude: false alter: alter_text: false @@ -5566,10 +5552,11 @@ display: empty_zero: false hide_alter_empty: true click_sort_column: value - type: number_integer + type: boolean settings: - thousand_separator: '' - prefix_suffix: true + format: unicode-yes-no + format_custom_true: '' + format_custom_false: '' group_column: value group_columns: { } group_rows: true @@ -5580,29 +5567,9 @@ display: multi_type: separator separator: ', ' field_api_classes: false - plugin_id: field - status: - id: status - table: node_field_data - field: status - label: État - exclude: false - alter: - alter_text: false - element_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - type: boolean - settings: - format: custom - format_custom_true: Publié - format_custom_false: 'Non publié' - plugin_id: field entity_type: node - entity_field: status + entity_field: promote + plugin_id: field changed: id: changed table: node_field_data @@ -5703,11 +5670,9 @@ display: - user.permissions max-age: 0 tags: + - 'config:field.storage.node.field_dates_actu' - 'config:field.storage.node.field_image' - 'config:field.storage.node.field_memo' - - 'config:field.storage.node.field_poid' - 'config:field.storage.node.field_programme' - 'config:field.storage.node.field_projet' - - 'config:field.storage.node.field_ressources_liees' - 'config:field.storage.node.field_theme' - - 'config:field.storage.node.field_type_de_ressource' diff --git a/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_actu.yml b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_actu.yml new file mode 100644 index 00000000..dfdcd276 --- /dev/null +++ b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_actu.yml @@ -0,0 +1,121 @@ +id: d7_node_actu +label: Node actu +migration_group: popsu +audit: true +migration_tags: + - Drupal 7 + - Content + - Popsu + +source: + plugin: d7_node_actu + batch_size: 500 + # high_water_property: + # name: changed + # alias: n + +destination: + plugin: entity:node + +process: + # nid: nid + type: + plugin: default_value + default_value: actualite + created: created + changed: changed + + uid: + plugin: default_value + default_value: 34 + + title: title + + field_sous_titre: field_popsu_actu_soustitre + + promote: + plugin: default_value + default_value: 0 + source: field_popsu_actu_enhome + + # https://understanddrupal.com/articles/migrating-dates-drupal + # 'field_date/value': + # plugin: format_date + # source: field_popsu_actu_date + # from_format: 'Y-m-j H:i:s' + # to_format: 'Y-m-d\TH:i:s' + # 'field_date/end_value': + # plugin: format_date + # source: field_popsu_actu_date_fin + # from_format: 'Y-m-j H:i:s' + # to_format: 'Y-m-d\TH:i:s' + + field_dates_actu: + - + plugin: skip_on_empty + method: process + source: field_date + - + plugin: sub_process + # source: field_date + process: + value: + # format_date was not working, converting date to timestamp on prepare_row + plugin: format_date + from_format: 'Y-m-d H:i:s' + to_format: 'Y-m-d\TH:i:s' + # \TH:i:s + source: value + end_value: + plugin: format_date + from_format: 'Y-m-d H:i:s' + to_format: 'Y-m-d\TH:i:s' + source: end + # duration: duration + timezone: + plugin: default_value + default_value: "" + # settings: + # validate_format: false + + body: + plugin: sub_process + source: field_popsu_actu_body + process: + value: value + summary: summary + format: + plugin: default_value + default_value: wysiwyg + + field_fichier: + plugin: sub_process + source: field_popsu_actu_attachment + process: + target_id: + plugin: migration_lookup + migration: d7_allpublicfiles + source: fid + no_stub: true + display: display + description: description + + field_image: + plugin: sub_process + source: field_popsu_actu_image + process: + target_id: + plugin: migration_lookup + migration: d7_allpublicfiles + source: fid + no_stub: true + alt: alt + title: title + + + + field_memo: field_memo + +migration_dependencies: + required: + - d7_allpublicfiles diff --git a/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_evenement.yml b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_evenement.yml index e07d7def..6c6f8049 100644 --- a/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_evenement.yml +++ b/web/modules/custom/popsu_migrate/config/install/migrate_plus.migration.d7_node_evenement.yml @@ -107,5 +107,3 @@ process: migration_dependencies: required: - d7_allpublicfiles - - d7_users - - d7_taxonomy_term_type_theme diff --git a/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeActu.php b/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeActu.php new file mode 100644 index 00000000..8dcb992a --- /dev/null +++ b/web/modules/custom/popsu_migrate/src/Plugin/migrate/source/D7NodeActu.php @@ -0,0 +1,187 @@ +moduleHandler = $module_handler; + $this->logger = $loggerFactory->get('popsu_migration'); + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) { + return new static( + $configuration, + $plugin_id, + $plugin_definition, + $migration, + $container->get('state'), + $container->get('entity_type.manager'), + $container->get('module_handler'), + $container->get('logger.factory') + ); + } + + /** + * The join options between the node and the node_revisions table. + */ + const JOIN = 'n.vid = nr.vid'; + + /** + * {@inheritdoc} + */ + public function query() { + // Select node in its last revision. + $query = $this->select('node_revision', 'nr') + ->fields('n', [ + 'nid', + 'type', + 'uid', + 'language', + 'status', + 'created', + 'changed', + ]) + ->fields('nr', [ + 'vid', + 'title', + 'log', + 'timestamp', + ]) + ->orderBy('type', 'DESC'); + + $query->addField('n', 'uid', 'node_uid'); + $query->addField('nr', 'uid', 'revision_uid'); + $query->innerJoin('node', 'n', static::JOIN); + + $query->condition('n.type', ['popsu_actu'], 'IN'); + + return $query; + } + + /** + * {@inheritdoc} + */ + public function prepareRow(Row $row) { + $nid = $row->getSourceProperty('nid'); + $vid = $row->getSourceProperty('vid'); + $type = $row->getSourceProperty('type'); + $title = $row->getSourceProperty('title'); + Drush::output()->writeln('- - - - ' . $title . ' ('.$nid.')'. ' ['.$type.']' . '- - - - '); + + $memo = ''; + $memo .= "#migration : old nid = ".$nid."\n"; + $memo .= "#migration : old content type = ".$type."\n"; + + // Get Field API field values. + foreach ($this->getFields('node', $type) as $field_name => $field) { + $field_values = $this->getFieldValues('node', $field_name, $nid, $vid, NULL); + $row->setSourceProperty($field_name, $field_values); + } + + $field_date = array(); + if ($date_start = $row->getSourceProperty('field_popsu_actu_date')) { + // Drush::output()->writeln(dump($date_start)); + // $field_date['value'] = strtotime(substr($date_start[0]['value'], 0, 10)); + $field_date['value'] = $date_start[0]['value']; + } + if ($date_end = $row->getSourceProperty('field_popsu_actu_date_fin')) { + // Drush::output()->writeln(dump($date_end)); + $field_date['end'] = $date_end[0]['value']; + } + if (!empty($field_date)) { + // $field_date['duration'] = $field_date['end'] - $field_date['value']; + // Drush::output()->writeln(dump($field_date)); + $row->setSourceProperty('field_date', array($field_date)); + } + + + // record migration errors in field_memo + if(isset($memo)){ + $field_memo = array( + array( + 'value' => $memo + ) + ); + $row->setSourceProperty('field_memo', $field_memo); + } + + return parent::prepareRow($row); + } + + /** + * {@inheritdoc} + */ + public function fields() { + $fields = [ + 'nid' => $this->t('Node ID'), + 'type' => $this->t('Type'), + 'title' => $this->t('Title'), + 'node_uid' => $this->t('Node authored by (uid)'), + 'revision_uid' => $this->t('Revision authored by (uid)'), + 'created' => $this->t('Created timestamp'), + 'changed' => $this->t('Modified timestamp'), + 'status' => $this->t('Published'), + 'promote' => $this->t('Promoted to front page'), + 'sticky' => $this->t('Sticky at top of lists'), + 'revision' => $this->t('Create new revision'), + 'language' => $this->t('Language (fr, en, ...)'), + 'tnid' => $this->t('The translation set id for this node'), + 'timestamp' => $this->t('The timestamp the latest revision of this node was created.'), + ]; + return $fields; + } + + /** + * {@inheritdoc} + */ + public function getIds() { + $ids['nid']['type'] = 'integer'; + $ids['nid']['alias'] = 'n'; + return $ids; + } + +}