--- ECHO_content/ECHO_collection.py 2011/11/03 11:05:25 1.311 +++ ECHO_content/ECHO_collection.py 2012/01/03 13:02:31 1.312 @@ -21,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 @@ -1037,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) @@ -1058,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") - genObj=getattr(self,fileName) - #genObj.createIndexFile() - ret+="OK:"+fileName+"
" + #metalink=metaDataUrl+"/"+path+"/"+fileName+"/index.meta" + + 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 @@ -1928,7 +1966,6 @@ class ECHO_root(Folder,Persistent,Implic getSubCols = ECHO_helpers.getSubCols manage_options=Folder.manage_options+( - {'label':'Main Config','action':'ECHO_copyright_configForm'}, {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'Change Weights','action':'changeWeights'}, {'label':'Generate from RDF','action':'generateFromRDFForm'}, @@ -2295,7 +2332,7 @@ class ECHO_root(Folder,Persistent,Implic retStr+="""