From 14e4cda43dd0ba907e87640e80a6745b8e465324 Mon Sep 17 00:00:00 2001
From: Bjarke Madsen <bjarke@nordu.net>
Date: Fri, 21 Mar 2025 10:44:07 +0100
Subject: [PATCH] Match against nren when searching in user management

---
 Changelog.md                                              | 3 +++
 .../src/survey/management/UserManagementComponent.tsx     | 8 +++++++-
 compendium_v2/publishers/survey_publisher.py              | 2 ++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/Changelog.md b/Changelog.md
index 54561589..510d670d 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -3,6 +3,9 @@
 All notable changes to this project will be documented in this file.
 
 
+## [0.95] - 2025-03-21
+- COMP-461: Also match nren name when searching in user management
+
 ## [0.94] - 2025-03-19
 - Fix Excel export for data that includes null values
 
diff --git a/compendium-frontend/src/survey/management/UserManagementComponent.tsx b/compendium-frontend/src/survey/management/UserManagementComponent.tsx
index 69070404..b95a1413 100644
--- a/compendium-frontend/src/survey/management/UserManagementComponent.tsx
+++ b/compendium-frontend/src/survey/management/UserManagementComponent.tsx
@@ -238,7 +238,13 @@ function UserManagementComponent() {
 
     const sortFunction = sortFunctions[sortColumn.column] ?? defaultSortFunction
 
-    const filteredUsers = filter ? users.filter((u) => u.email.includes(filter) || u.name.includes(filter)) : users
+    const lowercaseFilter = filter ? filter.toLowerCase() : filter
+
+    const filteredUsers = filter ? users.filter((u) =>
+        u.email.toLowerCase().includes(lowercaseFilter)
+        || u.name.toLowerCase().includes(lowercaseFilter)
+        || u.nrens.some((nren) => nren.toLowerCase().includes(lowercaseFilter)
+        )) : users
     const userList = filteredUsers.filter((u) => u.id !== loggedInUser.id).sort(sortFunction)
     if (!sortColumn.asc) {
         userList.reverse()
diff --git a/compendium_v2/publishers/survey_publisher.py b/compendium_v2/publishers/survey_publisher.py
index 7b7686aa..9f333290 100644
--- a/compendium_v2/publishers/survey_publisher.py
+++ b/compendium_v2/publishers/survey_publisher.py
@@ -298,6 +298,8 @@ def publish(year, dry_run=False):
         select(SurveyResponse).where(
             SurveyResponse.survey_year == year, SurveyResponse.status == ResponseStatus.completed,
             SurveyResponse.valid == True).where(~SurveyResponse.nren_id.in_(  # noqa: E712
+                # If any NRENs are in this table, new surveys will not be generated for them.
+                # This is a catch to ensure that existing survey data doesn't make it through publishing.
                 select(NRENExclusion.nren_id).where(NRENExclusion.year == year)
             )
         )
-- 
GitLab