provide principal.title if no person available

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3041 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-06 11:51:41 +00:00
parent 2e3f0b8e9c
commit d086529b05

View file

@ -24,6 +24,7 @@ $Id$
from datetime import date, datetime from datetime import date, datetime
from zope.app.pagetemplate import ViewPageTemplateFile from zope.app.pagetemplate import ViewPageTemplateFile
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.cachedescriptors.property import Lazy from zope.cachedescriptors.property import Lazy
from zope.traversing.browser import absoluteURL from zope.traversing.browser import absoluteURL
from zope.traversing.api import getName from zope.traversing.api import getName
@ -158,6 +159,10 @@ class TrackDetails(object):
self.view = view self.view = view
self.track = track self.track = track
@Lazy
def authentication(self):
return component.getUtility(IAuthentication)
@Lazy @Lazy
def object(self): def object(self):
obj = util.getObjectForUid(self.track.taskId) obj = util.getObjectForUid(self.track.taskId)
@ -169,7 +174,11 @@ class TrackDetails(object):
def user(self): def user(self):
obj = util.getObjectForUid(self.track.userName) obj = util.getObjectForUid(self.track.userName)
if obj is None: 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 node = self.view.nodeView
url = node is not None and node.getUrlForTarget(obj) or '' url = node is not None and node.getUrlForTarget(obj) or ''
return dict(object=obj, title=obj.title, url=url) return dict(object=obj, title=obj.title, url=url)