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

version 1.43, 2005/03/01 11:30:57 version 1.49, 2005/10/11 20:10:34
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.49


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