Diff for /ECHO_content/VLPExtension.py between versions 1.43 and 1.48

version 1.43, 2005/03/01 11:30:57 version 1.48, 2005/09/13 16:10:44
Line 16  import xml.dom.minidom Line 16  import xml.dom.minidom
 import urllib  import urllib
 import xmlrpclib  import xmlrpclib
 import vlp_xmlhelpers  import vlp_xmlhelpers
   import sys
   import os
   from stat import *
 from types import *  from types import *
 from Globals import package_home  from Globals import package_home
   
Line 342  class VLP_subcollection(ECHO_collection) Line 345  class VLP_subcollection(ECHO_collection)
     """ subcollection of elements"""      """ subcollection of elements"""
   
     meta_type="VLP_subcollection"      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):      def generateSubCollectionFromDB(self):
         """erzeuge subcollection"""          """erzeuge subcollection"""
         for item in self.ZSQLSimpleSearch("select * from vl_literature where volumeid like '%s'"%self.id):          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)              manage_addECHO_link(self,item.reference,item.titlerefdisplay,item.titlerefdisplay)
   
   
     def index_html(self):      def index_html(self):
         """erzeuge darstellung"""          """erzeuge darstellung"""
   
Line 377  class VLP_collection(ECHO_collection): Line 392  class VLP_collection(ECHO_collection):
         )          )
   
   
     def generateSubCollections(self):  
       def generateSubCollections(self,errorsTXT=""):
         """erzeuge subcollectionen"""          """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("<html><body>\n")          self.REQUEST.RESPONSE.write("<h2>Create Subcollections</h2>\n")
         for found in founds:          for found in founds:
                           try:
             foundCol=self.ZopeFind(self,obj_ids=[found.reference])              foundCol=self.ZopeFind(self,obj_ids=[found.reference])
             if foundCol:              if foundCol:
   
                 self.manage_delObjects([foundCol[0][0]])                  self.manage_delObjects([foundCol[0][0]])
                           
             manage_addVLP_subCollection(self,found.reference,found.titlerefdisplay,found.titlerefdisplay)              manage_addVLP_subCollection(self,found.reference,found.titlerefdisplay,found.titlerefdisplay)
             #getattr(self,found.reference).generateSubCollectionFromDB()              #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("<p>%s</p>\n"%found.reference)              self.REQUEST.RESPONSE.write("<p>%s</p>\n"%found.reference)
               except:
                   error=sys.exc_info()[0:2]
                   RESPONSE.write("(ERROR (%s): %s %s)\n"%(found.reference,error[0],error[1]))
                   errorsTXT+="<p>No subcollection of %s  "+"(ERROR: %s %s)</p>"%error
   
           return errorsTXT
                   
     def VLP_path_configForm(self):      def VLP_path_configForm(self):
         """change pt"""          """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()          return pt()
   
     def VLP_path_config(self,path,RESPONSE=None):      def VLP_path_config(self,path,RESPONSE=None):
         """config"""          """config"""
         self.path=path          self.vlp_basis=path
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
     def updateCollection(self,RESPONSE=None):      def updateCollection(self,RESPONSE=None):
         """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""          """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""
         files=os.listdir(self.path)      errorsTXT="<h2>Errors</h2>"
       RESPONSE.write("<html><body>")
           files=os.listdir(self.vlp_basis)
   
       errorsTXT+="<h3>New Ressources</h3>"
         for fileName in files:          for fileName in files:
                           
             if fileName[0:3]=="lit":              if fileName[0:3]=="lit":
                                   
                 metalink=self.REQUEST['URL1']+"/"+fileName+"/index_meta"                  metalink=self.REQUEST['URL1']+"/"+fileName+"/index_meta"
           try:
         if not hasattr(self,fileName):          if not hasattr(self,fileName):
             newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')              newObj=VLP_resource(fileName,'',metalink,fileName,fileName,fileName,'generated','book','','','','','','')
             self._setObject(fileName,newObj)              self._setObject(fileName,newObj)
                 RESPONSE.write("got: %s\n"%fileName)          
               RESPONSE.write("<p>got: %s\n</p>"%fileName)
                 genObj=getattr(self,fileName)                  genObj=getattr(self,fileName)
               if hasattr(genObj,'createIndexFile'):
                   try:
                 genObj.createIndexFile()                  genObj.createIndexFile()
                   except:
                       error=sys.exc_info()[0:2]
                       RESPONSE.write("<p>(ERROR (%s): %s %s)</p>\n"%(fileName,error[0],error[1]))
                       errorsTXT+="<p>No indexfile of %s  "+"(ERROR: %s %s)</p>"%error
   
               if genObj.meta_type=="VLP_subcollection":
                   genObj.pageSizeSum=getattr(genObj,fileName).getPageSizeSum()
               else:
                   genObj.pageSizeSum=genObj.getPageSizeSum()
   
           except:
               error=sys.exc_info()[0:2]
               RESPONSE.write("<p>(ERROR (%s): %s %s)</p>\n"%(fileName,error[0],error[1]))
               errorsTXT+="<p>File not created:%s  "+"(ERROR: %s %s)</p>"%error
                   
       errorsTXT+=self.generateSubCollections()
       errorsTXT+="/n"
       RESPONSE.write(errorsTXT)
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
     def updateCollectionMD(self,RESPONSE=None):      def updateCollectionMD(self,RESPONSE=None):
         """updateMD"""          """updateMD"""
         files=os.listdir(self.path)          files=os.listdir(self.vlp_basis)
         for fileName in files:          for fileName in files:
             if fileName[0:3]=="lit":              if fileName[0:3]=="lit":
                 genObj=getattr(self,fileName)                  genObj=getattr(self,fileName)
Line 478  class VLP_resource(ECHO_resource,Cacheab Line 535  class VLP_resource(ECHO_resource,Cacheab
   
     meta_type="VLP_resource"      meta_type="VLP_resource"
   
     vlp_basis="/mpiwg/online/permanent/vlp"      #vlp_basis="/mpiwg/online/permanent/vlp"
   
           
     referencetypes=[]      referencetypes=[]
Line 493  class VLP_resource(ECHO_resource,Cacheab Line 550  class VLP_resource(ECHO_resource,Cacheab
   
     def getImagePath(self):      def getImagePath(self):
         """Pfad zu den Images"""          """Pfad zu den Images"""
           
         if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg')):          if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg')):
             return 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')):          elif os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')):
Line 624  class VLP_resource(ECHO_resource,Cacheab Line 682  class VLP_resource(ECHO_resource,Cacheab
                           
         return 0          return 0
           
       def getPageSizeSum(self):
           """generate average page size"""
   
           #size of hi resolution
           files=[]
           try:
               pathHi=os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
               files=os.listdir(pathHi)
               hi=0
               for f in files:
                   hi+=os.stat(os.path.join(pathHi,f))[ST_SIZE]
   
           except:
               hi=0
   
           #size of hi resolution
           try:
               pathHi=os.path.join(self.vlp_basis,self.resourceID,'pagesLo')
               files=os.listdir(pathHi)
               lo=0
               for f in files:
                   lo+=os.stat(os.path.join(pathHi,f))[ST_SIZE]
   
           except:
               lo=0
   
           
           return (hi,lo,len(files))
               
   
       def getPageWeights(self):
           """average Page sizes in kBytes"""
       
           res=getattr(self,'pageSizeSum',(0,0,1))
           return (res[0]/(1024*res[2]),res[1]/(1024*res[2]))
                   
           
           
     def dir2index(self):      def dir2index(self):
         """dir to index"""          """dir to index"""
   
     excludeNames=['Icon']      excludeNames=['Icon']
           
       
         def calculateName(str):          def calculateName(str):
         name=os.path.splitext(str[1:])[0]          name=os.path.splitext(str[1:])[0]
             ret="%s: %s"%(str[0],name)              ret="%s: %s"%(str[0],name)

Removed from v.1.43  
changed lines
  Added in v.1.48


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>