# HG changeset patch # User casties # Date 1371635568 -7200 # Node ID 90d44df497a6c12d53f7868865855035e1632dfa # Parent 9a09156eee7c268361f10271f33348525d036b11 updated breadcrumb handling, works for members now. diff -r 9a09156eee7c -r 90d44df497a6 MPIWGHelper.py --- a/MPIWGHelper.py Tue Jun 18 14:12:17 2013 +0200 +++ b/MPIWGHelper.py Wed Jun 19 11:52:48 2013 +0200 @@ -102,7 +102,8 @@ # def getBreadcrumbs(self): """return list of breadcrumbs from here to the root""" - crumbs = [(self.title, self.absolute_url(), self)] + #logging.debug("getBreadcrumbs of %s"%repr(self)) + crumbs = [{'text':self.title, 'url':self.absolute_url(), 'object':self}] parent = self.aq_parent if hasattr(parent, 'getBreadcrumbs'): if self.title: @@ -118,7 +119,7 @@ """returns the current section name""" # use breadcrumbs if available if crumbs is not None and len(crumbs) > 0: - return crumbs[0][2].getId() + return crumbs[0]['object'].getId() p = self sec = None @@ -133,7 +134,7 @@ """returns the current subsection name""" # use breadcrumbs if available if crumbs is not None and len(crumbs) > 1: - return crumbs[1][2].getId() + return crumbs[1]['object'].getId() p = self sec = None diff -r 9a09156eee7c -r 90d44df497a6 MPIWGProjects.py --- a/MPIWGProjects.py Tue Jun 18 14:12:17 2013 +0200 +++ b/MPIWGProjects.py Wed Jun 19 11:52:48 2013 +0200 @@ -1348,9 +1348,9 @@ # try to get acquisition URL from parent if hasattr(parent, 'absolute_url'): - baseUrl = "%s/%s/" % (parent.absolute_url(), 'projects') + baseUrl = "%s/%s" % (parent.absolute_url(), 'projects') else: - baseUrl = "/en/research/projects/" + baseUrl = "/en/research/projects" # add in the internal project hierarchy tree = self.getProjectTree() @@ -1358,10 +1358,10 @@ # start with grandparents for p in ap: label = shortenString(p.getLabel(), 13) - crumbs.append((label, p.getUrl(baseUrl=baseUrl), p)) + crumbs.append({'text':label, 'url':p.getUrl(baseUrl=baseUrl), 'title':p.getLabel(), 'object':p}) # add this project - crumbs.append((self.getLabel(), self.getUrl(baseUrl=baseUrl), self)) + crumbs.append({'text':self.getLabel(), 'url':self.getUrl(baseUrl=baseUrl), 'title':self.getLabel(), 'object':self}) return crumbs diff -r 9a09156eee7c -r 90d44df497a6 MPIWGStaff.py --- a/MPIWGStaff.py Tue Jun 18 14:12:17 2013 +0200 +++ b/MPIWGStaff.py Wed Jun 19 11:52:48 2013 +0200 @@ -8,6 +8,7 @@ from zope.interface import implements from zope.publisher.interfaces import IPublishTraverse from ZPublisher.BaseRequest import DefaultPublishTraverse +from Acquisition import aq_parent from AccessControl import ClassSecurityInfo from App.class_init import InitializeClass @@ -764,6 +765,29 @@ # TODO: compat, is this used? getStaffURL = getUsername + + def getBreadcrumbs(self): + """return list of breadcrumbs from here to the root""" + crumbs = [] + label = '%s %s'%(self.content.first_name, self.content.last_name) + baseUrl = None + parent = aq_parent(self) + # get parents breadcrumbs + if hasattr(parent, 'getBreadcrumbs'): + crumbs = parent.getBreadcrumbs() + if len(crumbs) > 0: + # get base url from crumbs + baseUrl = crumbs[-1]['url'] + '/members' + + if baseUrl is None: + baseUrl = '/en/staff/members' + + # add this + crumbs.append({'text':label, 'url':self.getUrl(baseUrl=baseUrl), 'object':self}) + + return crumbs + + def getPublicationsFromPubman(self,limit=None,publicationType=None): """Return list of publications.""" if self.content.publications_mode=="year": diff -r 9a09156eee7c -r 90d44df497a6 zpt/staff/member_index_html.zpt --- a/zpt/staff/member_index_html.zpt Tue Jun 18 14:12:17 2013 +0200 +++ b/zpt/staff/member_index_html.zpt Wed Jun 19 11:52:48 2013 +0200 @@ -8,7 +8,8 @@ + global baseUrl string:$root/${secmap/staff}/members/$username; + global crumbs member/getBreadcrumbs;" /> diff -r 9a09156eee7c -r 90d44df497a6 zpt/www/main_template.zpt --- a/zpt/www/main_template.zpt Tue Jun 18 14:12:17 2013 +0200 +++ b/zpt/www/main_template.zpt Wed Jun 19 11:52:48 2013 +0200 @@ -2,7 +2,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Home > - News > + News > - News + News