From d086529b05d14ada9e63f501466ca1a9d3af2f4c Mon Sep 17 00:00:00 2001 From: helmutm Date: Sat, 6 Dec 2008 11:51:41 +0000 Subject: [PATCH] provide principal.title if no person available git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3041 fd906abe-77d9-0310-91a1-e0d9ade77398 --- organize/tracking/report.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/organize/tracking/report.py b/organize/tracking/report.py index 64260b9..a293062 100644 --- a/organize/tracking/report.py +++ b/organize/tracking/report.py @@ -24,6 +24,7 @@ $Id$ from datetime import date, datetime from zope.app.pagetemplate import ViewPageTemplateFile +from zope.app.security.interfaces import IAuthentication, PrincipalLookupError from zope.cachedescriptors.property import Lazy from zope.traversing.browser import absoluteURL from zope.traversing.api import getName @@ -158,6 +159,10 @@ class TrackDetails(object): self.view = view self.track = track + @Lazy + def authentication(self): + return component.getUtility(IAuthentication) + @Lazy def object(self): obj = util.getObjectForUid(self.track.taskId) @@ -169,7 +174,11 @@ class TrackDetails(object): def user(self): obj = util.getObjectForUid(self.track.userName) if obj is None: - return dict(object=None, title=self.track.userName, url='') + try: + userTitle = self.authentication.getPrincipal(userName) + except PrincipalLookupError: + userTitle = self.track.userName + return dict(object=None, title=userTitle, url='') node = self.view.nodeView url = node is not None and node.getUrlForTarget(obj) or '' return dict(object=obj, title=obj.title, url=url)