--- ECHO_content/ECHO_collection.py 2009/04/17 13:58:40 1.305 +++ ECHO_content/ECHO_collection.py 2010/10/13 13:10:19 1.310 @@ -57,6 +57,7 @@ import Ft.Xml.XPath import cStringIO import sys +import logging try: from psycopg import libpq @@ -380,7 +381,7 @@ class ECHO_fullText(ZopePageTemplate,ECH try: dom=xml.dom.minidom.parseString(self()) except: - dom=xml.dom.minidom.parseString(self().encode('latin-1')) + dom=xml.dom.minidom.parseString(self.utf8ify(self())) pages=dom.getElementsByTagName('page') return pages[int(nr)-1].toxml() @@ -701,6 +702,39 @@ class ECHO_collection(CatalogAware, Fold path="/mpiwg/online/permanent/shipbuilding" + def getSection(self, crumbs=None): + """returns the current section name""" + # use breadcrumbs if available + if crumbs is not None and len(crumbs) > 0: + return crumbs[0][2].getId() + + p = self + + sec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav': + sec = p.getId() + p = p.aq_parent + + return sec + + def getSubSection(self, crumbs=None): + """returns the current subsection name""" + # use breadcrumbs if available + if crumbs is not None and len(crumbs) > 1: + return crumbs[1][2].getId() + + p = self + sec = None + subsec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav': + subsec = sec + sec = p.getId() + p = p.aq_parent + + return subsec + def exportImportObjects_html(self,RESPONSE): """ImportObject""" @@ -856,20 +890,24 @@ class ECHO_collection(CatalogAware, Fold if not urn: urn=self.absolute_url() - li="""\n""" + li="""\n""" for content in contents: try: ret+=content[1].getRDF()+"\n" except: - logging.error("getRDF: "+repr(content[1].getRDF())) - ret+=self.unicodify(content[1].getRDF())+"\n" - ret+="""\n"""%urn + logging.error("getrdf: "+repr(content[1].getRDF())) + try: + ret+=self.unicodify(content[1].getRDF())+"\n" + except: + logging.error("--still cannot do it") + ret+=repr(content[1].getRDF())+"\n" + ret+="""\n"""%urn for content in contents: nurn=content[1].absolute_url() ret+=li%nurn - return ret+"" + return ret+"" @@ -999,7 +1037,7 @@ class ECHO_collection(CatalogAware, Fold pass return ret - def importCollection(self,path=None,RESPONSE=None): + def importCollection(self,path=None,viewerUrl=None,metaDataUrl=None,replacePathPermanent=None,replacePathExperimental=None,RESPONSE=None): """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" if path is None: @@ -1012,15 +1050,20 @@ class ECHO_collection(CatalogAware, Fold if fileName: - tempPath=re.sub("/mpiwg/online","",path) - link="http://echo.mpiwg-berlin.mpg.de/zogilib_book?fn="+tempPath+"/"+fileName+"/pageimg" + if (replacePathExperimental and replacePathExperimental!=''): + path=re.sub(replacePathExperimental,"/mpiwg/online/experimental",path) + + if (replacePathPermanent and replacePathPermanent!=''): + path=re.sub(replacePathPermanent,"/mpiwg/online/permanent",path) + + link=viewerUrl%(path+"/"+fileName+"/pageimg") - metalink=self.path+"/"+fileName+"/index.meta" + metalink=metaDataUrl+"/"+path+"/"+fileName+"/index.meta" try: #link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb" - newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'generated','book','','','','','','') + newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'','book','','','','','','') self._setObject(fileName,newObj) genObj=getattr(self,fileName) @@ -1617,17 +1660,17 @@ class ECHO_group(ECHO_collection): if not urn: urn=self.absolute_url() - li="""\n""" + li="""\n""" for content in contents: - ret+=content[1].getRDF()+"\n" + ret+=self.unicodify(content[1].getRDF())+"\n" - ret+="""\n"""%urn + ret+="""\n"""%urn for content in contents: nurn=content[1].absolute_url() ret+=li%nurn - return ret+"" + return ret+"" def index_html(self): """standard page""" @@ -1811,7 +1854,8 @@ class ECHO_userFolder(UserFolder): return 1 return 0 -Globals.default__class_init__(ECHO_userFolder) +# ROC: problem with 2.12 +#Globals.default__class_init__(ECHO_userFolder) @@ -1886,6 +1930,8 @@ class ECHO_root(Folder,Persistent,Implic ) + + def getECHORootURL(self): return self.absolute_url()