--- ECHO_content/ECHO_collection.py 2012/01/18 16:57:00 1.310.2.5
+++ ECHO_content/ECHO_collection.py 2012/01/03 13:02:31 1.312
@@ -9,7 +9,11 @@ class ECHO_externalLink contains informa
"""
-
+try:
+ from reportlab.pdfgen import canvas
+ from reportlab.lib.pagesizes import A4
+except:
+ print "PDF generation will not work"
import urlparse
import string
@@ -17,6 +21,7 @@ import tempfile
import zipfile
import re
import os,shutil
+import traceback
import OFS.Image
from types import *
from OFS.Cache import Cacheable
@@ -36,7 +41,6 @@ from Globals import Persistent, package_
from Acquisition import Implicit
from Products.ZCatalog.CatalogPathAwareness import CatalogAware
from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon
-from Acquisition import aq_parent
try:
from Products.MetaDataProvider.MetaDataClient import MetaDataClient
except:
@@ -46,11 +50,11 @@ import urllib2
import cgi
import smtplib
import time
-#from Ft.Xml.Domlette import NonvalidatingReader
-#from Ft.Xml.Domlette import PrettyPrint, Print
-#from Ft.Xml import EMPTY_NAMESPACE
-#
-#import Ft.Xml.XPath
+from Ft.Xml.Domlette import NonvalidatingReader
+from Ft.Xml.Domlette import PrettyPrint, Print
+from Ft.Xml import EMPTY_NAMESPACE
+
+import Ft.Xml.XPath
import cStringIO
import sys
@@ -694,8 +698,6 @@ class ECHO_collection(CatalogAware, Fold
meta_type='ECHO_collection'
default_catalog='resourceCatalog'
- rootMetaTypes = ['ECHO_root', 'ECHO_main', 'ECHO_nav']
-
# viewClassificationList=viewClassificationListMaster
displayTypes=displayTypes
@@ -708,11 +710,12 @@ class ECHO_collection(CatalogAware, Fold
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 not in self.rootMetaTypes:
+ 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 = aq_parent(p.context)
+ p = p.aq_parent
return sec
@@ -726,32 +729,13 @@ class ECHO_collection(CatalogAware, Fold
sec = None
subsec = None
# descend parents to the root (and remember the last id)
- while p is not None and p.meta_type not in self.rootMetaTypes:
+ 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 = aq_parent(p.context)
+ p = p.aq_parent
return subsec
- def getHierCrumbs(self):
- """returns a list of hierarchical breadcrumbs from self to the ECHO_root"""
- # crumb for this object
- crumb = {'obj': self,
- 'url': self.absolute_url(),
- 'label': self.getLabel()}
- crumbs = [crumb]
- # call the parent's method recursively
- parent = aq_parent(self)
- if hasattr(parent, 'getHierCrumbs'):
- if self.title:
- return parent.getHierCrumbs() + crumbs
- else:
- # if there's no title, skip this level
- return parent.getHierCrumbs()
-
- return crumbs
-
-
def exportImportObjects_html(self,RESPONSE):
"""ImportObject"""
@@ -1054,18 +1038,37 @@ class ECHO_collection(CatalogAware, Fold
pass
return ret
- def importCollection(self,path=None,viewerUrl=None,metaDataUrl=None,replacePathPermanent=None,replacePathExperimental=None,RESPONSE=None):
+ def importCollection(self,path=None,viewerUrl=None,metaDataUrl=None,replacePathPermanent=None,replacePathExperimental=None,folderListFile=None,RESPONSE=None):
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""
- if path is None:
+ if (path is None) & (folderListFile is None):
pt=zptFile(self, 'zpt/importCollection.zpt')
return pt()
- files=os.listdir(path)
+
+
+ if (path !=""):
+ files=os.listdir(path)
+ pathToFolder=path;
+ else:
+ pathToFolder="";
+ files=[];
+ for fileLine in folderListFile.readlines():
+ for fileLine2 in fileLine.split("\r"):
+ logging.debug("append:"+fileLine2)
+ files.append(fileLine2)
+
ret=""
for fileName in files:
if fileName:
+ logging.debug("split:"+fileName);
+ if(pathToFolder==""): # pfad ist leer, da filename aud folderlistfile dann:
+ splitted=fileName.split("/");
+ path="/".join(splitted[0:-1]);
+ fileName=splitted[-1].rstrip().lstrip();
+
+
if (replacePathExperimental and replacePathExperimental!=''):
path=re.sub(replacePathExperimental,"/mpiwg/online/experimental",path)
@@ -1075,20 +1078,38 @@ class ECHO_collection(CatalogAware, Fold
link=viewerUrl%(path+"/"+fileName+"/pageimg")
- 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,'','book','','','','','','')
- self._setObject(fileName,newObj)
+ metalink=metaDataUrl+re.sub("/mpiwg/online/","",path+"/"+fileName+"/index.meta")
+
+ #metalink=metaDataUrl+"/"+path+"/"+fileName+"/index.meta"
- genObj=getattr(self,fileName)
- #genObj.createIndexFile()
- ret+="OK:"+fileName+"
"
+ newindexMeta =re.sub("/mpiwg/online/","",path+"/"+fileName)
+
+ try:
+ type=self.metadata.getBibTypeFromIndexMeta(newindexMeta)
+
+ try:
+
+ #link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb"
+ logging.debug("create:"+fileName);
+ logging.debug("type:"+type);
+ newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'',type,'','','','','','')
+ self._setObject(fileName,newObj)
+
+ genObj=getattr(self,fileName)
+ #genObj.createIndexFile()
+ ret+="OK:"+fileName+"
"
+ except:
+ exc_type, exc_value, exc_traceback = sys.exc_info();
+ #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
+ traceback.print_exception(exc_type, exc_value, exc_traceback,
+ limit=2, file=sys.stdout)
+ ret+="ERROR:"+fileName+"
"
except:
- print "ERROR"
- ret+="ERROR:"+fileName+"
"
+ exc_type, exc_value, exc_traceback = sys.exc_info();
+ #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
+ traceback.print_exception(exc_type, exc_value, exc_traceback,
+ limit=2, file=sys.stdout)
+ ret+="not a file ERROR:"+fileName+"
"
return ret
@@ -1151,7 +1172,38 @@ class ECHO_collection(CatalogAware, Fold
if RESPONSE is not None:
RESPONSE.write("
Done