From 0ea448b4b627dc42b79c674e739f349ba3712be9 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 6 Feb 2024 08:00:00 +0000 Subject: [PATCH] Sort speakers by their most recent talks --- .../_includes/speakers/recent-speakers.html.twig | 16 +++++++++++++++- source/index.html.twig | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/source/_includes/speakers/recent-speakers.html.twig b/source/_includes/speakers/recent-speakers.html.twig index 78101e0..eb65eb3 100644 --- a/source/_includes/speakers/recent-speakers.html.twig +++ b/source/_includes/speakers/recent-speakers.html.twig @@ -4,7 +4,21 @@
- {% for speaker in speakers|sort((a, b) => a.name <=> b.name) %} + {% set speakersAndDates = [] %} + + {% for speaker in speakers %} + {% set talksForSpeaker = talks|default([])|filter(talk => talk.speaker == speaker.name) %} + {% set mostRecentTalk = talksForSpeaker|first %} + + {% set speakersAndDates = speakersAndDates|merge([{ + date: mostRecentTalk.date, + speaker, + }]) %} + {% endfor %} + + {% set sortedSpeakers = speakersAndDates|sort((a, b) => b.date <=> a.date) %} + + {% for speaker in sortedSpeakers|column('speaker') %}
diff --git a/source/index.html.twig b/source/index.html.twig index 0eb2070..441bbd3 100644 --- a/source/index.html.twig +++ b/source/index.html.twig @@ -5,4 +5,5 @@ use: [speakers] {% include 'speakers/recent-speakers' with { speakers: data.speakers, + talks: site.talks, } %}