From c54053a12576dc8e4faf8a82750dd1195f087841 Mon Sep 17 00:00:00 2001
From: Kevin Paxman <kpaxman@uwaterloo.ca>
Date: Mon, 21 Oct 2024 15:14:44 -0400
Subject: [PATCH] EXPHR: add support for newly-created (in uw_cfg_common)
 website lead role

---
 css/uw_dashboard.css |  1 +
 uw_dashboard.module  | 21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/css/uw_dashboard.css b/css/uw_dashboard.css
index ec50314..e1c0776 100644
--- a/css/uw_dashboard.css
+++ b/css/uw_dashboard.css
@@ -13,4 +13,5 @@
 
 .dashboard__site-info {
   float: right;
+  margin-bottom: 0.2rem;
 }
diff --git a/uw_dashboard.module b/uw_dashboard.module
index 888781f..65ec482 100644
--- a/uw_dashboard.module
+++ b/uw_dashboard.module
@@ -168,8 +168,25 @@ function uw_dashboard_preprocess_page(&$variables) {
     $string .= \Drupal::service('extension.list.profile')->getList()['uw_base_profile']->info['version'];
 
     // Get the website lead(s).
-    $string .= ' &bull; Website lead: ';
-    $string .= 'not set';
+    $query = \Drupal::entityQuery('user')
+      ->condition('status', 1)
+      ->condition('roles', 'uw_role_website_lead')
+      ->sort('field_uw_last_name', 'ASC')
+      ->sort('field_uw_first_name', 'ASC');
+    $uids = $query->execute();
+    $users = User::loadMultiple($uids);
+    $user_list = [];
+    foreach ($users as $user) {
+      $user_list[] = Link::fromTextAndUrl($user->getDisplayName(), Url::fromUri('mailto:' . $user->getEmail()))->toString();
+    }
+    if (!$user_list) {
+      $user_list[] = 'not set';
+    }
+    $string .= ' &bull; Website lead';
+    if (count($user_list) > 1) {
+      $string .= 's';
+    }
+    $string .= ': ' . implode(', ', $user_list);
 
     // Get the site owner(s).
     $query = \Drupal::entityQuery('user')
-- 
GitLab