From f1c47055db9348bd0a303b83a65ef1b560a3572e Mon Sep 17 00:00:00 2001 From: Madhura Date: Mon, 13 Apr 2026 14:35:59 +0100 Subject: [PATCH 1/5] Add a startDate field for notification survey popup --- .../dtg/isaac/dos/content/Notification.java | 22 +++++++++++++++++++ .../isaac/dto/content/NotificationDTO.java | 20 +++++++++++++++++ .../api/managers/NotificationPicker.java | 7 +++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java index a665967400..2926aea67b 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java @@ -27,6 +27,7 @@ public class Notification extends Content { private ExternalReference externalReference; private Instant expiry; + private Instant startDate; /** * Notification object constructor taking a string value for the notification content. @@ -79,4 +80,25 @@ public Instant getExpiry() { public void setExpiry(final Instant expiry) { this.expiry = expiry; } + + +/** + * Gets the startDate. + * + * @return the startDate + */ +public Instant getStartDate() { + return startDate; } + +/** + * Sets the startDate. + * + * @param startDate the startDate to set + */ +public void setStartDate(final Instant startDate) { + this.startDate = startDate; +} +} + + diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java index b4ca4838e5..954893fc3c 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java @@ -27,6 +27,7 @@ public class NotificationDTO extends ContentDTO { private ExternalReference externalReference; private Instant expiry; + private Instant startDate; /** * Notification object constructor taking a string value for the notification content. @@ -79,4 +80,23 @@ public Instant getExpiry() { public void setExpiry(final Instant expiry) { this.expiry = expiry; } + + +/** + * Gets the startDate. + * + * @return the startDate + */ +public Instant getStartDate() { + return startDate; +} + +/** + * Sets the startDate. + * + * @param startDate the startDate to set + */ +public void setStartDate(final Instant startDate) { + this.startDate = startDate; +} } diff --git a/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java b/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java index 828d96e474..155a34c704 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java +++ b/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java @@ -68,7 +68,7 @@ public NotificationPicker(final GitContentManager contentManager, @Named(CONTENT /** * getAvailableNotificationsForUser. - * + *q * @param user to select notifications for. * @return the list of content to show to the user. * @throws ContentManagerException if something goes wrong looking up the content. @@ -100,6 +100,11 @@ public List getAvailableNotificationsForUser(final RegisteredUserDTO continue; } + if (notification.getStartDate() != null && Instant.now().isBefore(notification.getStartDate())) { + // skip showing this notification yet + continue; + } + String roleTag = user.getRole().name().toLowerCase(); if (null == c.getTags() || !c.getTags().contains(roleTag)) { // Skip irrelevant notifications From f8a967d22a9b19d88b8c06b8197383a8822542ed Mon Sep 17 00:00:00 2001 From: Madhura Date: Mon, 13 Apr 2026 14:39:33 +0100 Subject: [PATCH 2/5] Fix indentation for Notification file --- .../dtg/isaac/dos/content/Notification.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java index 2926aea67b..a80257eed5 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java @@ -82,23 +82,24 @@ public void setExpiry(final Instant expiry) { } -/** - * Gets the startDate. - * - * @return the startDate - */ -public Instant getStartDate() { - return startDate; -} + /** + * Gets the startDate. + * + * @return the startDate + */ + public Instant getStartDate() { + return startDate; + } -/** - * Sets the startDate. - * - * @param startDate the startDate to set - */ -public void setStartDate(final Instant startDate) { - this.startDate = startDate; -} -} + /** + * Sets the startDate. + * + * @param startDate the startDate to set + */ + public void setStartDate(final Instant startDate) { + + this.startDate = startDate; + } + } From a77196cf403cedc49d18485d8468b8920baef3fa Mon Sep 17 00:00:00 2001 From: Madhura Date: Mon, 13 Apr 2026 14:45:55 +0100 Subject: [PATCH 3/5] Fix curly brace indentation --- .../java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java index a80257eed5..96ae7806c0 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java @@ -100,6 +100,6 @@ public void setStartDate(final Instant startDate) { this.startDate = startDate; } - } +} From c453992c5051429a9d8846e46f6b1894060da748 Mon Sep 17 00:00:00 2001 From: Madhura Date: Mon, 13 Apr 2026 14:52:54 +0100 Subject: [PATCH 4/5] Remove spacing --- .../java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java index 96ae7806c0..a560b89b9a 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dos/content/Notification.java @@ -97,7 +97,6 @@ public Instant getStartDate() { * @param startDate the startDate to set */ public void setStartDate(final Instant startDate) { - this.startDate = startDate; } } From 41eb517efc2f1c7716ecd3f897365011c8b83e67 Mon Sep 17 00:00:00 2001 From: Madhura Date: Mon, 13 Apr 2026 15:22:19 +0100 Subject: [PATCH 5/5] Remove comment and fix indentation --- .../uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java | 4 ++-- .../ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java index 954893fc3c..244533b170 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java +++ b/src/main/java/uk/ac/cam/cl/dtg/isaac/dto/content/NotificationDTO.java @@ -87,7 +87,7 @@ public void setExpiry(final Instant expiry) { * * @return the startDate */ -public Instant getStartDate() { + public Instant getStartDate() { return startDate; } @@ -96,7 +96,7 @@ public Instant getStartDate() { * * @param startDate the startDate to set */ -public void setStartDate(final Instant startDate) { + public void setStartDate(final Instant startDate) { this.startDate = startDate; } } diff --git a/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java b/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java index 155a34c704..81f8db95c3 100644 --- a/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java +++ b/src/main/java/uk/ac/cam/cl/dtg/segue/api/managers/NotificationPicker.java @@ -68,7 +68,6 @@ public NotificationPicker(final GitContentManager contentManager, @Named(CONTENT /** * getAvailableNotificationsForUser. - *q * @param user to select notifications for. * @return the list of content to show to the user. * @throws ContentManagerException if something goes wrong looking up the content.