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