--- ECHO_content/VLPExtension.py 2005/02/28 20:02:08 1.41 +++ 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 @@ -342,14 +343,30 @@ class VLP_subcollection(ECHO_collection) """ subcollection of elements""" meta_type="VLP_subcollection" + + def checkForFrontMatter(self,item): + """Teste ob Frontmatter exists""" + if not item==self.getId(): + return False + + if self.ZopeFind(self,obj_ids=[self.getId()]): + return True + else: + return False + def generateSubCollectionFromDB(self): """erzeuge subcollection""" for item in self.ZSQLSimpleSearch("select * from vl_literature where volumeid like '%s'"%self.id): manage_addECHO_link(self,item.reference,item.titlerefdisplay,item.titlerefdisplay) + def index_html(self): """erzeuge darstellung""" - pt=zptFile(self, 'vlp/collection_template.zpt') + + if hasattr(self,'subCollection_template.html'): + return getattr(self,'subCollection_template.html')() + + pt=zptFile(self, 'vlp/subCollection_template.zpt') return pt() @@ -373,55 +390,91 @@ 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)','(Library)')") + founds=self.ZSQLSimpleSearch("select * from vl_literature where referencetype in ('(Book)','(Collection)','(Journal)')") - self.REQUEST.RESPONSE.write("
\n") + self.REQUEST.RESPONSE.write("%s
\n"%found.reference) + 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 + return errorsTXT def VLP_path_configForm(self): """change pt""" - path=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLPPath.zpt')).__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'vlp','ChangeVLPPath.zpt')).__of__(self) return pt() def VLP_path_config(self,path,RESPONSE=None): """config""" - self.path=path + self.vlp_basis=path if RESPONSE is not None: RESPONSE.redirect('manage_main') def updateCollection(self,RESPONSE=None): """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" - files=os.listdir(self.path) + errorsTXT="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') def updateCollectionMD(self,RESPONSE=None): """updateMD""" - files=os.listdir(self.path) + files=os.listdir(self.vlp_basis) for fileName in files: if fileName[0:3]=="lit": genObj=getattr(self,fileName) @@ -474,7 +527,7 @@ class VLP_resource(ECHO_resource,Cacheab meta_type="VLP_resource" - vlp_basis="/mpiwg/online/permanent/vlp" + #vlp_basis="/mpiwg/online/permanent/vlp" referencetypes=[] @@ -489,6 +542,7 @@ class VLP_resource(ECHO_resource,Cacheab def getImagePath(self): """Pfad zu den Images""" + if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg')): return os.path.join(self.vlp_basis,self.resourceID,'pageimg') elif os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')): @@ -639,7 +693,7 @@ class VLP_resource(ECHO_resource,Cacheab temp=[] ret.sort() for x in ret: - if (not (x[0]==".")) and (not x in excludeNames): + if (not (x[0]==".")) and (not x[0:4] in excludeNames): temp.append((calculateName(x),os.path.splitext(x)[0])) return temp