fixed duplicated events nodes in views

This commit is contained in:
Bachir Soussi Chiadmi 2025-05-26 14:53:21 +02:00
parent 2f49bb4a3c
commit 62981265f7
12 changed files with 180 additions and 46 deletions

View File

@ -9,6 +9,7 @@ dependencies:
- field.field.node.evenement.field_fichier
- field.field.node.evenement.field_image
- field.field.node.evenement.field_intro
- field.field.node.evenement.field_last_date_only
- field.field.node.evenement.field_lien
- field.field.node.evenement.field_memo
- field.field.node.evenement.field_organisateur
@ -42,7 +43,7 @@ third_party_settings:
label: Tabs
region: content
parent_name: ''
weight: 20
weight: 1
format_type: tabs
format_settings:
classes: ''
@ -77,7 +78,7 @@ third_party_settings:
label: Details
region: content
parent_name: ''
weight: 20
weight: 2
format_type: details_sidebar
format_settings:
classes: ''
@ -318,7 +319,7 @@ content:
third_party_settings: { }
title:
type: string_textfield
weight: -5
weight: 0
region: content
settings:
size: 60
@ -326,6 +327,7 @@ content:
third_party_settings: { }
hidden:
created: true
field_last_date_only: true
langcode: true
path: true
sticky: true

View File

@ -10,6 +10,7 @@ dependencies:
- field.field.node.evenement.field_fichier
- field.field.node.evenement.field_image
- field.field.node.evenement.field_intro
- field.field.node.evenement.field_last_date_only
- field.field.node.evenement.field_lien
- field.field.node.evenement.field_memo
- field.field.node.evenement.field_organisateur
@ -78,6 +79,7 @@ hidden:
field_fichier: true
field_image: true
field_intro: true
field_last_date_only: true
field_lien: true
field_memo: true
field_organisateur: true

View File

@ -9,6 +9,7 @@ dependencies:
- field.field.node.evenement.field_fichier
- field.field.node.evenement.field_image
- field.field.node.evenement.field_intro
- field.field.node.evenement.field_last_date_only
- field.field.node.evenement.field_lien
- field.field.node.evenement.field_memo
- field.field.node.evenement.field_organisateur
@ -39,7 +40,16 @@ content:
label: hidden
settings: { }
third_party_settings: { }
weight: 101
weight: 1
region: content
computed_date_unique:
type: datetime_default
label: hidden
settings:
timezone_override: ''
format_type: medium
third_party_settings: { }
weight: -5
region: content
field_date:
type: datetime_default
@ -48,7 +58,7 @@ content:
timezone_override: ''
format_type: medium
third_party_settings: { }
weight: 109
weight: 7
region: content
field_evenements_lies:
type: entity_reference_label
@ -56,7 +66,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 115
weight: 13
region: content
field_fichier:
type: file_default
@ -64,7 +74,7 @@ content:
settings:
use_description_as_link_text: true
third_party_settings: { }
weight: 110
weight: 8
region: content
field_image:
type: image
@ -75,14 +85,14 @@ content:
image_loading:
attribute: lazy
third_party_settings: { }
weight: 111
weight: 9
region: content
field_intro:
type: text_default
label: above
settings: { }
third_party_settings: { }
weight: 102
weight: 2
region: content
field_lien:
type: link
@ -94,21 +104,21 @@ content:
rel: ''
target: ''
third_party_settings: { }
weight: 113
weight: 11
region: content
field_memo:
type: basic_string
label: above
settings: { }
third_party_settings: { }
weight: 118
weight: 16
region: content
field_organisateur:
type: text_default
label: above
settings: { }
third_party_settings: { }
weight: 108
weight: 6
region: content
field_partenaires:
type: entity_reference_revisions_entity_view
@ -117,7 +127,7 @@ content:
view_mode: default
link: ''
third_party_settings: { }
weight: 112
weight: 10
region: content
field_programme:
type: entity_reference_label
@ -125,7 +135,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 104
weight: 4
region: content
field_projet:
type: entity_reference_label
@ -133,7 +143,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 116
weight: 14
region: content
field_promu_en_page_programme:
type: boolean
@ -143,7 +153,7 @@ content:
format_custom_false: ''
format_custom_true: ''
third_party_settings: { }
weight: 119
weight: 17
region: content
field_ressources_liees:
type: entity_reference_label
@ -151,7 +161,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 114
weight: 12
region: content
field_sous_titre:
type: string
@ -159,7 +169,7 @@ content:
settings:
link_to_entity: false
third_party_settings: { }
weight: 107
weight: 5
region: content
field_theme:
type: entity_reference_label
@ -167,7 +177,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 117
weight: 15
region: content
field_type_evenement:
type: entity_reference_label
@ -175,13 +185,14 @@ content:
settings:
link: true
third_party_settings: { }
weight: 103
weight: 3
region: content
links:
settings: { }
third_party_settings: { }
weight: 100
weight: 0
region: content
hidden:
field_last_date_only: true
langcode: true
search_api_excerpt: true

View File

@ -10,6 +10,7 @@ dependencies:
- field.field.node.evenement.field_fichier
- field.field.node.evenement.field_image
- field.field.node.evenement.field_intro
- field.field.node.evenement.field_last_date_only
- field.field.node.evenement.field_lien
- field.field.node.evenement.field_memo
- field.field.node.evenement.field_organisateur
@ -69,6 +70,7 @@ hidden:
field_evenements_lies: true
field_fichier: true
field_intro: true
field_last_date_only: true
field_lien: true
field_memo: true
field_organisateur: true

View File

@ -121,6 +121,7 @@ module:
phpass: 0
popsu_link_block: 0
popsu_programme: 0
popsu_uniqdate: 0
redirect: 0
redis: 0
responsive_image: 0

View File

@ -0,0 +1,21 @@
uuid: 16f921b2-5e9e-4230-98c2-c8d5cf0fe09a
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_last_date_only
- node.type.evenement
module:
- datetime
id: node.evenement.field_last_date_only
field_name: field_last_date_only
entity_type: node
bundle: evenement
label: 'last date only'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: datetime

View File

@ -0,0 +1,20 @@
uuid: f29abaf8-e11e-4a19-8e1b-1b5487159376
langcode: fr
status: true
dependencies:
module:
- datetime
- node
id: node.field_last_date_only
field_name: field_last_date_only
entity_type: node
type: datetime
settings:
datetime_type: datetime
module: datetime
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@ -1,5 +1,5 @@
uuid: 6524248b-fa9a-428b-9186-2c00c3d8b7b0
langcode: en
langcode: fr
status: true
dependencies:
module:

View File

@ -1,5 +1,5 @@
uuid: b72de79a-02bf-424d-9bf3-03ffbda0f29a
langcode: en
langcode: fr
status: true
dependencies:
module:

View File

@ -153,6 +153,16 @@ display:
force_chronological: false
add_classes: false
time_wrapper: false
localize: false
parts:
start: start
end: end
duration: '0'
duration:
separator: ' | '
unit: ''
decimals: 2
suffix: h
group_column: value
group_columns: { }
group_rows: true
@ -442,10 +452,10 @@ display:
options: { }
empty: { }
sorts:
field_date_value:
id: field_date_value
table: node__field_date
field: field_date_value
field_last_date_only_value:
id: field_last_date_only_value
table: node__field_last_date_only
field: field_last_date_only_value
relationship: none
group_type: group
admin_label: ''
@ -453,23 +463,7 @@ display:
order: DESC
expose:
label: ''
field_identifier: field_date_value
exposed: false
granularity: second
created:
id: created
table: node_field_data
field: created
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: created
plugin_id: date
order: DESC
expose:
label: ''
field_identifier: created
field_identifier: ''
exposed: false
granularity: second
arguments:
@ -519,13 +513,15 @@ display:
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
distinct: true
replica: false
query_tags: { }
relationships: { }
group_by: false
header: { }
footer: { }
display_extenders: { }
display_extenders:
views_ef_fieldset: { }
cache_metadata:
max-age: -1
contexts:

View File

@ -0,0 +1,6 @@
name: Popsu Uniqdate
type: module
description: misc plugins for popsu's programmes.
core_version_requirement: ^8.8 || ^9 || ^10
package: Popsu
dependencies:

View File

@ -0,0 +1,73 @@
<?php
use Drupal\node\Entity\Node;
// use Drupal\Core\Entity\EntityTypeInterface;
// use Drupal\Core\Field\BaseFieldDefinition;
// use Drupal\Core\Field\FieldStorageDefinitionInterface;
// https://www.drupal.org/project/drupal/issues/2916266#comment-12301574
function popsu_uniqdate_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
if ($entity->getEntityTypeId() === 'node' && $entity->bundle() === 'evenement') {
if ($entity->hasField('field_date') && !$entity->get('field_date')->isEmpty()) {
// $first_term = $entity->get('field_tags')->first()->target_id;
$dates = $entity->get('field_date')->getValue();
asort($dates);
$last_date = array_pop($dates);
$entity->set('field_last_date_only', $last_date);
}
else {
$entity->set('field_last_date_only', NULL);
}
}
}
// /**
// * Implement hook_entity_bundle_field_info().
// *
// * @param EntityTypeInterface $entity_type
// * @param $bundle
// * @param array $base_field_definitions
// * @return array
// */
// function popsu_uniqdate_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
// if ($entity_type->id() == 'node' && $bundle == 'evenement') {
// $fields['computed_date_unique'] = BaseFieldDefinition::create('datetime')
// ->setName('computed_date_unique')
// ->setLabel(t('Computed Date Unique'))
// ->setDescription(t('Computed Date Unique.'))
// // // The Entity Type this field belongs to.
// ->setTargetEntityTypeId($entity_type->id())
// // // The Entity Type bundle this field belongs to.
// ->setTargetBundle($bundle)
// // ->setSetting('target_type', 'node')
// ->setCardinality(1)
// ->setComputed(TRUE)
// ->setRevisionable(FALSE)
// ->setTranslatable(FALSE)
// ->setDisplayConfigurable('view', TRUE)
// ->setDisplayOptions('view', [
// 'label' => 'hidden',
// 'weight' => -5,
// ])
// ->setClass(\Drupal\popsu_uniqdate\Plugin\Field\FieldType\ComputedUniqDate::class);
// return $fields;
// }
// }
// /**
// * Implements hook_views_data_alter().
// */
// function popsu_uniqdate_views_data_alter(array &$data) {
// if (isset($data['node'])) {
// // Add the Computed Date Unique field to Views.
// $data['node']['computed_date_unique'] = [
// 'title' => t('Computed Date Unique'),
// 'field' => [
// 'id' => 'views_computed_date_unique',
// ],
// ];
// }
// }