popsu_migrate: D7NodeTheme started, improved admin vue

This commit is contained in:
Bachir Soussi Chiadmi 2021-04-16 22:08:52 +02:00
parent e8040aa7b9
commit 932709cb96
12 changed files with 776 additions and 87 deletions

View File

@ -72,6 +72,7 @@ module:
menu_link_content: 0 menu_link_content: 0
menu_ui: 0 menu_ui: 0
migrate: 0 migrate: 0
migrate_devel: 0
migrate_drupal: 0 migrate_drupal: 0
migrate_plus: 0 migrate_plus: 0
migrate_tools: 0 migrate_tools: 0

View File

@ -1,4 +1,4 @@
uuid: 0f97d872-fa48-4944-81a8-90265be2094e uuid: d20b17c1-040b-4b8b-8453-2222fc71592c
langcode: fr langcode: fr
status: true status: true
dependencies: { } dependencies: { }

View File

@ -0,0 +1,50 @@
uuid: 095bb664-b9d9-496a-9bb9-132e03bfca69
langcode: fr
status: true
dependencies: { }
_core:
default_config_hash: DEiEznlQsZHWFvplSNI6tTg2zhb8ezulEBACzsVtVUQ
id: d7_node_popsu_ville
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
- 'Drupal 7'
- Content
- Popsu
migration_group: popsu
label: 'Node popsu ville'
source:
plugin: d7_node_popsu_ville
node_type: popsu_ville
batch_size: 500
high_water_property:
name: changed
alias: 'n'
process:
type:
plugin: default_value
default_value: projet
title: title
created: created
changed: changed
uid:
plugin: migration_lookup
migration: d7_users
source: uid
body:
plugin: iterator
source: field_description
process:
value: value
format:
plugin: default_value
default_value: wysiwyg
destination:
plugin: 'entity:node'
migration_dependencies:
required:
- d7_allpublicfiles
- d7_users
- d7_programmes
- d7_villes

View File

@ -0,0 +1,58 @@
uuid: e355cc82-250d-4523-8bf9-2ed714e29c62
langcode: fr
status: true
dependencies: { }
_core:
default_config_hash: gnIlpxdQVO9VXb7quJw-fmpz3CX1GUXjMhjHmZ5w1YM
id: d7_node_programme
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
- 'Drupal 7'
- Content
- Popsu
migration_group: popsu
label: 'Node Programme'
source:
plugin: d7_node_programme
node_type: popsu_special
batch_size: 500
high_water_property:
name: changed
alias: 'n'
process:
type:
plugin: default_value
default_value: programme
created: created
changed: changed
uid:
plugin: default_value
default_value: 34
title: term_title
body/value: body
body/summary: body_summary
body/format:
plugin: default_value
default_value: wysiwyg
field_textes: text_paragraphe
field_sous_parties: sous_parties
field_partenaires: partenaires
field_fichier:
plugin: sub_process
source: fichiers
process:
target_id:
plugin: migration_lookup
migration: d7_allpublicfiles
source: fid
no_stub: true
display: display
description: description
destination:
plugin: 'entity:node'
migration_dependencies:
required:
- d7_allpublicfiles
- d7_users

View File

@ -0,0 +1,38 @@
uuid: 624dc3c7-c811-4f32-9823-2ec65ed4373f
langcode: fr
status: true
dependencies: { }
_core:
default_config_hash: QR9S8jsknIDqCYeApONkn5ndcCpazuyxJxCBUtUiqY8
id: d7_node_theme
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
- 'Drupal 7'
- Content
- Popsu
migration_group: popsu
label: 'Node Theme'
source:
plugin: d7_node_theme
batch_size: 500
high_water_property:
name: changed
alias: 'n'
process:
type:
plugin: default_value
default_value: theme
created: created
changed: changed
title: title
uid:
plugin: default_value
default_value: 34
destination:
plugin: 'entity:node'
migration_dependencies:
required:
- d7_allpublicfiles
- d7_users

View File

@ -1,9 +1,9 @@
uuid: 17350b9c-18b6-4716-b944-c09e2dd67163 uuid: b10f68ec-8c19-4707-8775-140231d57142
langcode: fr langcode: fr
status: true status: true
dependencies: { } dependencies: { }
_core: _core:
default_config_hash: 7HNGRfzA6vYrhJVsS7Wm-d_g6sucSx6c_K48dpghcks default_config_hash: mR9tehyJ35Hg9p6fRCGwtr-Whd1VHnD1_F-M9944bxc
id: d7_users id: d7_users
class: null class: null
field_plugin_method: null field_plugin_method: null
@ -46,7 +46,6 @@ process:
method: row method: row
value: value:
- 5 - 5
- 3
- -
plugin: static_map plugin: static_map
source: roles source: roles

View File

@ -1,5 +1,5 @@
uuid: 325cb8a6-0ecb-4e58-9248-cc86c51e0047 uuid: dee3cb55-be5e-47a0-b208-ed23f47d014d
langcode: en langcode: fr
status: true status: true
dependencies: dependencies:
enforced: enforced:

View File

@ -163,6 +163,7 @@ permissions:
- 'translate static node' - 'translate static node'
- 'update content translations' - 'update content translations'
- 'use text format wysiwyg' - 'use text format wysiwyg'
- 'use views bulk edit'
- 'view actualite revisions' - 'view actualite revisions'
- 'view all revisions' - 'view all revisions'
- 'view autre_son revisions' - 'view autre_son revisions'

View File

@ -6,4 +6,58 @@ id: editeur
label: Editeur label: Editeur
weight: -3 weight: -3
is_admin: null is_admin: null
permissions: { } permissions:
- 'access administration pages'
- 'access content overview'
- 'access files overview'
- 'access site in maintenance mode'
- 'access toolbar'
- 'break content lock'
- 'change own username'
- 'create actualite content'
- 'create collection content'
- 'create evenement content'
- 'create programme content'
- 'create projet content'
- 'create ressource content'
- 'create static content'
- 'create terms in equipes'
- 'create terms in types_d_evenement'
- 'create terms in types_de_document'
- 'create terms in types_de_theme'
- 'create terms in villes'
- 'create theme content'
- 'edit any actualite content'
- 'edit any collection content'
- 'edit any evenement content'
- 'edit any programme content'
- 'edit any projet content'
- 'edit any ressource content'
- 'edit any static content'
- 'edit any theme content'
- 'edit terms in equipes'
- 'edit terms in types_d_evenement'
- 'edit terms in types_de_document'
- 'edit terms in types_de_theme'
- 'edit terms in villes'
- 'revert actualite revisions'
- 'revert all revisions'
- 'revert collection revisions'
- 'revert evenement revisions'
- 'revert programme revisions'
- 'revert projet revisions'
- 'revert ressource revisions'
- 'revert static revisions'
- 'revert theme revisions'
- 'use text format wysiwyg'
- 'view actualite revisions'
- 'view all revisions'
- 'view collection revisions'
- 'view evenement revisions'
- 'view own unpublished content'
- 'view programme revisions'
- 'view projet revisions'
- 'view ressource revisions'
- 'view static revisions'
- 'view the administration theme'
- 'view theme revisions'

View File

@ -2,6 +2,9 @@ uuid: db0c124c-a260-4158-91e8-53b81d62a143
langcode: fr langcode: fr
status: true status: true
dependencies: dependencies:
config:
- node.type.programme
- node.type.theme
module: module:
- node - node
- user - user
@ -176,14 +179,14 @@ display:
settings: settings:
link_to_entity: true link_to_entity: true
plugin_id: field plugin_id: field
type: operations:
id: type id: operations
table: node_field_data table: node
field: type field: operations
relationship: none relationship: none
group_type: group group_type: group
admin_label: '' admin_label: ''
label: 'Type de contenu' label: Actions
exclude: false exclude: false
alter: alter:
alter_text: false alter_text: false
@ -224,23 +227,8 @@ display:
hide_empty: false hide_empty: false
empty_zero: false empty_zero: false
hide_alter_empty: true hide_alter_empty: true
click_sort_column: target_id destination: true
type: entity_reference_label plugin_id: entity_operations
settings:
link: false
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
entity_type: node
entity_field: type
plugin_id: field
name: name:
id: name id: name
table: users_field_data table: users_field_data
@ -304,56 +292,6 @@ display:
plugin_id: field plugin_id: field
entity_type: node entity_type: node
entity_field: changed entity_field: changed
operations:
id: operations
table: node
field: operations
relationship: none
group_type: group
admin_label: ''
label: Actions
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
destination: true
plugin_id: entity_operations
filters: filters:
title: title:
id: title id: title
@ -405,15 +343,18 @@ display:
group_type: group group_type: group
admin_label: '' admin_label: ''
operator: in operator: in
value: { } value:
theme: theme
group: 1 group: 1
exposed: true exposed: false
expose: expose:
operator_id: type_op operator_id: type_op
label: 'Type de contenu' label: 'Type de contenu'
description: '' description: ''
use_operator: false use_operator: false
operator: type_op operator: type_op
operator_limit_selection: false
operator_list: { }
identifier: type identifier: type
required: false required: false
remember: false remember: false
@ -423,8 +364,6 @@ display:
anonymous: '0' anonymous: '0'
administrator: '0' administrator: '0'
reduce: false reduce: false
operator_limit_selection: false
operator_list: { }
is_grouped: false is_grouped: false
group_info: group_info:
label: '' label: ''
@ -544,7 +483,7 @@ display:
operator_limit_selection: false operator_limit_selection: false
operator_list: { } operator_list: { }
sorts: { } sorts: { }
title: Contenu title: Themes
empty: empty:
area_text_custom: area_text_custom:
id: area_text_custom id: area_text_custom
@ -568,6 +507,17 @@ display:
groups: groups:
1: AND 1: AND
display_extenders: { } display_extenders: { }
header:
result:
id: result
table: views
field: result
relationship: none
group_type: group
admin_label: ''
empty: false
content: 'Affichage de @start à @end sur @total'
plugin_id: result
display_plugin: default display_plugin: default
display_title: Maître display_title: Maître
id: default id: default
@ -585,7 +535,7 @@ display:
tags: { } tags: { }
page_1: page_1:
display_options: display_options:
path: admin/content/node path: admin/content/programme
menu: menu:
type: 'default tab' type: 'default tab'
title: Contenu title: Contenu
@ -599,9 +549,165 @@ display:
description: 'Trouver et gérer le contenu' description: 'Trouver et gérer le contenu'
menu_name: admin menu_name: admin
weight: -10 weight: -10
display_extenders: { } display_extenders:
views_ef_fieldset: { }
display_description: ''
filters:
title:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: title_op
label: Titre
description: ''
use_operator: false
operator: title_op
identifier: title
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
operator_limit_selection: false
operator_list: { }
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: string
entity_type: node
entity_field: title
type:
id: type
table: node_field_data
field: type
relationship: none
group_type: group
admin_label: ''
operator: in
value:
programme: programme
group: 1
exposed: false
expose:
operator_id: type_op
label: 'Type de contenu'
description: ''
use_operator: false
operator: type_op
operator_limit_selection: false
operator_list: { }
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: bundle
entity_type: node
entity_field: type
status:
id: status
table: node_field_data
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '1'
group: 1
exposed: true
expose:
operator_id: ''
label: État
description: ''
use_operator: false
operator: status_op
identifier: status
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
operator_limit_selection: false
operator_list: { }
is_grouped: true
group_info:
label: 'Statut de publication'
description: ''
identifier: status
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items:
1:
title: Publié
operator: '='
value: '1'
2:
title: 'Non publié'
operator: '='
value: '0'
plugin_id: boolean
entity_type: node
entity_field: status
status_extra:
id: status_extra
table: node_field_data
field: status_extra
operator: '='
value: false
plugin_id: node_status
group: 1
entity_type: node
expose:
operator_limit_selection: false
operator_list: { }
defaults:
filters: false
filter_groups: false
filter_groups:
operator: AND
groups:
1: AND
display_plugin: page display_plugin: page
display_title: Page display_title: Programmes
id: page_1 id: page_1
position: 1 position: 1
cache_metadata: cache_metadata:
@ -615,3 +721,193 @@ display:
- user.permissions - user.permissions
max-age: 0 max-age: 0
tags: { } tags: { }
page_2:
display_options:
path: admin/content/themes
menu:
type: tab
title: Themes
description: ''
expanded: false
parent: system.admin_content
weight: -10
context: '0'
menu_name: admin
tab_options:
type: normal
title: Contenu
description: 'Trouver et gérer le contenu'
menu_name: admin
weight: -10
display_extenders:
views_ef_fieldset: { }
display_description: ''
filters:
title:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: title_op
label: Titre
description: ''
use_operator: false
operator: title_op
identifier: title
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
operator_limit_selection: false
operator_list: { }
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: string
entity_type: node
entity_field: title
type:
id: type
table: node_field_data
field: type
relationship: none
group_type: group
admin_label: ''
operator: in
value:
theme: theme
group: 1
exposed: false
expose:
operator_id: type_op
label: 'Type de contenu'
description: ''
use_operator: false
operator: type_op
operator_limit_selection: false
operator_list: { }
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
plugin_id: bundle
entity_type: node
entity_field: type
status:
id: status
table: node_field_data
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '1'
group: 1
exposed: true
expose:
operator_id: ''
label: État
description: ''
use_operator: false
operator: status_op
identifier: status
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
operator_limit_selection: false
operator_list: { }
is_grouped: true
group_info:
label: 'Statut de publication'
description: ''
identifier: status
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items:
1:
title: Publié
operator: '='
value: '1'
2:
title: 'Non publié'
operator: '='
value: '0'
plugin_id: boolean
entity_type: node
entity_field: status
status_extra:
id: status_extra
table: node_field_data
field: status_extra
operator: '='
value: false
plugin_id: node_status
group: 1
entity_type: node
expose:
operator_limit_selection: false
operator_list: { }
defaults:
filters: false
filter_groups: false
filter_groups:
operator: AND
groups:
1: AND
display_plugin: page
display_title: Themes
id: page_2
position: 1
cache_metadata:
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
- 'user.node_grants:view'
- user.permissions
max-age: 0
tags: { }

View File

@ -0,0 +1,38 @@
id: d7_node_theme
label: Node Theme
migration_group: popsu
audit: true
migration_tags:
- Drupal 7
- Content
- Popsu
source:
plugin: d7_node_theme
# node_type: popsu_special
batch_size: 500
high_water_property:
name: changed
alias: n
destination:
plugin: entity:node
process:
# nid: nid
type:
plugin: default_value
default_value: theme
created: created
changed: changed
title: title
uid:
plugin: default_value
default_value: 34
migration_dependencies:
required:
- d7_allpublicfiles
- d7_users

View File

@ -0,0 +1,154 @@
<?php
namespace Drupal\popsu_migrate\Plugin\migrate\source;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\migrate\Row;
use Drupal\migrate_drupal\Plugin\migrate\source\d7\FieldableEntity;
use Drupal\Core\Database\Query\SelectInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandler;
use Drupal\Core\State\StateInterface;
use Drupal\migrate\Plugin\MigrationInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drush\Drush;
// use Drupal\popsu_migrate\Plugin\migrate\source\D7Programme;
/**
* Drupal 7 node source from database.
*
* @MigrateSource(
* id = "d7_node_theme",
* source_module = "node"
* )
*/
class D7NodeTheme extends FieldableEntity {
/**
* The module handler.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* The logger channel.
*
* @var \Drupal\Core\Logger\LoggerChannelInterface
*/
protected $logger;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, StateInterface $state, EntityTypeManagerInterface $entity_manager, ModuleHandlerInterface $module_handler,LoggerChannelFactoryInterface $loggerFactory) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration, $state, $entity_manager);
$this->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('changed');
$query->addField('n', 'uid', 'node_uid');
$query->addField('nr', 'uid', 'revision_uid');
$query->innerJoin('node', 'n', static::JOIN);
$query->condition('n.type', ['popsu_theme_local', 'popsu_theme_trans', 'popsu_theme_europe'], '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 . '- - - - ');
// 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));
}
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;
}
}