migration projets: body markdown, images HD, légendes, personnes prénom/nom

- ProjetNode: body Markdown->HTML (strip HTML brut), images + légendes lues
  depuis public://drive_shared_leshed/Page{UID}
- ImageResizeImport: nouveau process plugin, redimensionne les images en web HD
  (max 1920px) et crée le fichier managé (idempotent)
- field_images: caption via image_field_caption, alt depuis les légendes
- PersonneGenerate: nom dans field_nom (titre auto-généré via auto_entitylabel),
  dédup sur field_nom + field_prenom
- title: skip_on_empty (ligne ignorée si "Nom du projet" vide)
- CER: relation curateur sur field_projets_curates (distinct de field_projet_s_lie_s)
- deps: + league/commonmark, image_field_caption, auto_entitylabel ; - migrate_file
This commit is contained in:
2026-07-26 16:26:18 +02:00
parent 829653a9e9
commit a2cb5f9dcf
28 changed files with 1600 additions and 142 deletions
+149 -89
View File
@@ -3,7 +3,8 @@ langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_prenom
- field.storage.node.field_projet_s_lie_s
- field.storage.node.field_projets_curates
- field.storage.node.field_type_de_projet
module:
- node
@@ -107,69 +108,6 @@ display:
multi_type: separator
separator: ', '
field_api_classes: false
field_prenom:
id: field_prenom
table: node__field_prenom
field: field_prenom
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: ''
exclude: true
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: false
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: string
settings:
link_to_entity: true
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
title:
id: title
table: node_field_data
@@ -183,7 +121,7 @@ display:
label: Titre
exclude: false
alter:
alter_text: true
alter_text: false
text: '{{ field_prenom }} {{ title }}'
make_link: false
path: ''
@@ -298,25 +236,132 @@ display:
multi_type: separator
separator: ', '
field_api_classes: false
name:
id: name
table: users_field_data
field: name
relationship: uid
entity_type: user
entity_field: name
field_projet_s_lie_s:
id: field_projet_s_lie_s
table: node__field_projet_s_lie_s
field: field_projet_s_lie_s
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: Auteur
label: 'Projet(s) lié(s)'
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
type: user_name
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
field_projets_curates:
id: field_projets_curates
table: node__field_projets_curates
field: field_projets_curates
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: projets_curates
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
status:
id: status
table: node_field_data
@@ -658,9 +703,10 @@ display:
columns:
node_bulk_form: node_bulk_form
type: title
field_prenom: title
title: title
name: name
field_type_de_projet: field_type_de_projet
field_projets_curates: field_projet_s_lie_s
field_projet_s_lie_s: field_projet_s_lie_s
status: status
changed: changed
operations: operations
@@ -678,13 +724,6 @@ display:
separator: ''
empty_column: false
responsive: ''
field_prenom:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
title:
sortable: true
default_sort_order: asc
@@ -692,13 +731,21 @@ display:
separator: '<br/>'
empty_column: false
responsive: ''
name:
sortable: false
default_sort_order: asc
field_type_de_projet:
align: ''
separator: ''
empty_column: false
responsive: priority-low
responsive: ''
field_projets_curates:
align: ''
separator: ''
empty_column: false
responsive: ''
field_projet_s_lie_s:
align: ''
separator: ''
empty_column: false
responsive: ''
status:
sortable: true
default_sort_order: asc
@@ -737,6 +784,17 @@ display:
plugin_id: standard
required: true
show_admin_links: false
header:
result:
id: result
table: views
field: result
relationship: none
group_type: group
admin_label: ''
plugin_id: result
empty: false
content: 'Affichage de @start à @end sur @total'
display_extenders: { }
cache_metadata:
max-age: 0
@@ -749,7 +807,8 @@ display:
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.field_prenom'
- 'config:field.storage.node.field_projet_s_lie_s'
- 'config:field.storage.node.field_projets_curates'
- 'config:field.storage.node.field_type_de_projet'
page_1:
id: page_1
@@ -783,5 +842,6 @@ display:
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.field_prenom'
- 'config:field.storage.node.field_projet_s_lie_s'
- 'config:field.storage.node.field_projets_curates'
- 'config:field.storage.node.field_type_de_projet'