--- MPIWGWeb/MPIWGProjects.py 2008/08/27 12:12:48 1.47.2.91 +++ MPIWGWeb/MPIWGProjects.py 2008/08/28 18:20:09 1.47.2.92 @@ -39,7 +39,7 @@ import MPIWGRoot import MPIWGLink import MPIWGTemplate -# die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus KompatibilitŠtsgrŸnden, bleiben die Klassen hier noch drin. +# die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus Kompatibilitaetsgruenden, bleiben die Klassen hier noch drin. # Sonst funktionieren die alten Webseiten nicht mehr. class MPIWGRoot(MPIWGRoot.MPIWGRoot): @@ -939,7 +939,7 @@ class MPIWGProject(CatalogAware,Folder): if (text5=="
") or (text5=="
"): text5="" - logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5))) + #logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5))) return unicodify(text5) #return utf8ify(text5) # return as utf-8 byte string @@ -1003,6 +1003,46 @@ class MPIWGProject(CatalogAware,Folder): else: return style + def getLabel(self): + """returns label (or title) of this project""" + l = self.getContent('xdata_07') + if l: + return l + l = self.getContent('WEB_title') + if l: + return l + return self.title + + def getBreadcrumbs(self): + """return list of breadcrumbs from here to the root""" + crumbs = [] + # skip direct parent Folder /projects/ + parent = self.aq_parent.aq_parent + # get parents breadcrumbs + logging.debug("getbreadcrumbs,: title=%s self=%s parent=%s"%(self.title, repr(self), repr(parent))) + if hasattr(parent, 'getBreadcrumbs'): + logging.debug("getbreadcrumbs: recurse to %s"%parent) + crumbs = parent.getBreadcrumbs() + + # try to get acquisition URL from parent + if hasattr(parent, 'absolute_url'): + baseUrl = "%s/%s/"%(parent.absolute_url(), 'projects') + else: + baseUrl = "/en/research/projects/" + + # add in the internal project hierarchy + ct=self.getContexts(parents=self.getContent('xdata_05')) + # start with grandparents + ct.reverse() + for c in ct: + label = shortenString(c[0].getLabel(), 13) + crumbs.append((label, baseUrl+c[0].getId(), c[0])) + + # add this project + crumbs.append((self.getLabel(), baseUrl+self.getId(), self)) + + return crumbs + def preview(self,description): """preview""" tmpPro=getattr(self,"previewTemplate",None)