From 7e6854da220fdb8545f23f971993cb9763c9764a Mon Sep 17 00:00:00 2001 From: isUnknown Date: Wed, 6 May 2026 11:21:41 +0200 Subject: [PATCH] Switch dates to from/to range, sort by most recent end date --- site/blueprints/pages/event.yml | 24 ++++++++++++++---------- site/models/event.php | 14 ++------------ 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/site/blueprints/pages/event.yml b/site/blueprints/pages/event.yml index 675adc5..98c75a2 100644 --- a/site/blueprints/pages/event.yml +++ b/site/blueprints/pages/event.yml @@ -35,19 +35,23 @@ tabs: columns: name: width: 1/2 - dates: - width: 1/2 + from: + width: 1/4 + to: + width: 1/4 fields: name: label: Lieu placeholder: Théâtre-Sénart, Scène Nationale, Lieusaint type: text - dates: - label: Dates - type: structure - fields: - date: - label: Date - type: date - display: DD/MM/YYYY + from: + label: Du + type: date + display: DD/MM/YYYY + width: 1/2 + to: + label: Au + type: date + display: DD/MM/YYYY + width: 1/2 files: tabs/files diff --git a/site/models/event.php b/site/models/event.php index e02ccce..03bf7ca 100644 --- a/site/models/event.php +++ b/site/models/event.php @@ -7,20 +7,10 @@ class EventPage extends Page $groups = array_values($this->dates()->toStructure()->data()); usort($groups, fn($a, $b) => strcmp( - $this->firstDateOf($a), - $this->firstDateOf($b) + $b->to()->value() ?? '', + $a->to()->value() ?? '' )); return $groups; } - - private function firstDateOf($group): string - { - $dates = array_filter(array_map( - fn($item) => $item->date()->value(), - array_values($group->dates()->toStructure()->data()) - )); - - return !empty($dates) ? min($dates) : ''; - } }