Index: announcement-tool/tool/src/java/org/sakaiproject/announcement/tool/AnnouncementAction.java =================================================================== --- announcement-tool/tool/src/java/org/sakaiproject/announcement/tool/AnnouncementAction.java (revision 51665) +++ announcement-tool/tool/src/java/org/sakaiproject/announcement/tool/AnnouncementAction.java (working copy) @@ -92,6 +92,8 @@ import org.sakaiproject.tool.cover.SessionManager; import org.sakaiproject.tool.cover.ToolManager; import org.sakaiproject.user.api.UserNotDefinedException; +import org.sakaiproject.user.api.ContextualUserDisplayService; +import org.sakaiproject.user.api.User; import org.sakaiproject.user.cover.UserDirectoryService; import org.sakaiproject.util.FormattedText; import org.sakaiproject.util.MergedList; @@ -217,7 +219,7 @@ private ContentHostingService contentHostingService = null; private AssignmentService assignmentService = null; - + /** * Used by callback to convert channel references to channels. */ @@ -363,6 +365,8 @@ private String range; + private String authorDisplayName; + public AnnouncementMessage getMessage() { return this.announcementMesssage; @@ -410,6 +414,18 @@ this.channelDisplayName = ""; } + // TODO Let's not retrieve the service for each and every message.... + ContextualUserDisplayService contextualUserDisplayService = (ContextualUserDisplayService) ComponentManager.get("org.sakaiproject.user.api.ContextualUserDisplayService"); + User author = message.getAnnouncementHeader().getFrom(); + if ((site != null) && (!this.editable) && (contextualUserDisplayService != null)) + { + this.authorDisplayName = contextualUserDisplayService.getUserDisplayName(author, site.getReference()); + } + if (this.authorDisplayName == null) + { + this.authorDisplayName = author.getDisplayName(); + } + if (range != null) { this.range = range; @@ -617,6 +633,11 @@ { return announcementMesssage.getAnnouncementHeader(); } + + public String getAuthorDisplayName() + { + return authorDisplayName; + } /** * Constructs a list of wrapped/decorated AnnouncementMessages when given a list of unwrapped/undecorated AnnouncementMessages. Index: announcement-tool/tool/src/webapp/vm/announcement/chef_announcements.vm =================================================================== --- announcement-tool/tool/src/webapp/vm/announcement/chef_announcements.vm (revision 51665) +++ announcement-tool/tool/src/webapp/vm/announcement/chef_announcements.vm (working copy) @@ -259,7 +259,8 @@ - $validator.escapeHtml($ann_item.Header.From.DisplayName) +## $validator.escapeHtml($ann_item.Header.From.DisplayName) + $validator.escapeHtml($ann_item.AuthorDisplayName) #if ($SiteColumnFlag > 0)