--- ECHO_content/VLPExtension.py 2005/06/08 07:07:27 1.46 +++ ECHO_content/VLPExtension.py 2005/09/12 16:42:10 1.47 @@ -16,6 +16,7 @@ import xml.dom.minidom import urllib import xmlrpclib import vlp_xmlhelpers +import sys from types import * from Globals import package_home @@ -390,33 +391,38 @@ class VLP_collection(ECHO_collection): - def generateSubCollections(self): + def generateSubCollections(self,errorsTXT=""): """erzeuge subcollectionen""" founds=self.ZSQLSimpleSearch("select * from vl_literature where referencetype in ('(Book)','(Collection)','(Journal)')") - self.REQUEST.RESPONSE.write("\n") + self.REQUEST.RESPONSE.write("

Create Subcollections

\n") for found in founds: + try: + foundCol=self.ZopeFind(self,obj_ids=[found.reference]) + if foundCol: + + self.manage_delObjects([foundCol[0][0]]) + + manage_addVLP_subCollection(self,found.reference,found.titlerefdisplay,found.titlerefdisplay) + #getattr(self,found.reference).generateSubCollectionFromDB() + #teste ob es Images auf dem Server gibt mit gleichem Namen (frontmatter) + if os.path.exists(os.path.join(self.vlp_basis,found.reference)): + + obj=getattr(self,found.reference) + if not self.ZopeFind(obj,obj_ids=[found.reference]): + metalink=self.REQUEST['URL1']+"/"+found.reference+"/"+found.reference+"/index_meta" + newObj=VLP_resource(found.reference,'',metalink,found.reference,found.reference,found.reference,'generated','book','','','','','','') + obj._setObject(found.reference,newObj) + genObj=getattr(obj,found.reference) + genObj.createIndexFile() + + self.REQUEST.RESPONSE.write("

%s

\n"%found.reference) + except: + error=sys.exc_info()[0:2] + RESPONSE.write("(ERROR: %s %s)\n"%error) + errorsTXT+="

No subcollection of %s "+"(ERROR: %s %s)

"%error - foundCol=self.ZopeFind(self,obj_ids=[found.reference]) - if foundCol: - - self.manage_delObjects([foundCol[0][0]]) - - manage_addVLP_subCollection(self,found.reference,found.titlerefdisplay,found.titlerefdisplay) - #getattr(self,found.reference).generateSubCollectionFromDB() - #teste ob es Images auf dem Server gibt mit gleichem Namen (frontmatter) - if os.path.exists(os.path.join(self.vlp_basis,found.reference)): - - obj=getattr(self,found.reference) - if not self.ZopeFind(obj,obj_ids=[found.reference]): - metalink=self.REQUEST['URL1']+"/"+found.reference+"/"+found.reference+"/index_meta" - newObj=VLP_resource(found.reference,'',metalink,found.reference,found.reference,found.reference,'generated','book','','','','','','') - obj._setObject(found.reference,newObj) - genObj=getattr(obj,found.reference) - genObj.createIndexFile() - - self.REQUEST.RESPONSE.write("

%s

\n"%found.reference) - + return errorsTXT def VLP_path_configForm(self): """change pt""" @@ -431,24 +437,38 @@ class VLP_collection(ECHO_collection): def updateCollection(self,RESPONSE=None): """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" - + errorsTXT="

Errors

" + RESPONSE.write("") files=os.listdir(self.vlp_basis) + + errorsTXT+="

New Ressources

" for fileName in files: if fileName[0:3]=="lit": metalink=self.REQUEST['URL1']+"/"+fileName+"/index_meta" - if not hasattr(self,fileName): - newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','') - self._setObject(fileName,newObj) - - RESPONSE.write("got: %s\n"%fileName) - genObj=getattr(self,fileName) - if hasattr(genObj,'createIndexFile'): - genObj.createIndexFile() - - self.generateSubCollections() - + try: + if not hasattr(self,fileName): + newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','') + self._setObject(fileName,newObj) + + RESPONSE.write("

got: %s\n

"%fileName) + genObj=getattr(self,fileName) + if hasattr(genObj,'createIndexFile'): + try: + genObj.createIndexFile() + except: + error=sys.exc_info()[0:2] + RESPONSE.write("

(ERROR: %s %s)

\n"%error) + errorsTXT+="

No indexfile of %s "+"(ERROR: %s %s)

"%error + except: + error=sys.exc_info()[0:2] + RESPONSE.write("

(ERROR: %s %s)

\n"%error) + errorsTXT+="

File not created:%s "+"(ERROR: %s %s)

"%error + + errorsTXT+=self.generateSubCollections() + errorsTXT+="/n" + RESPONSE.write(errorsTXT) if RESPONSE is not None: RESPONSE.redirect('manage_main')