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 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)