Diff for /ECHO_content/ECHO_resource.py between versions 1.6.2.4 and 1.6.2.5

version 1.6.2.4, 2012/08/23 10:25:32 version 1.6.2.5, 2012/08/29 07:53:31
Line 1 Line 1
 #TODO: change metaDataHash, jetzt tag -> data(tags aus dem neuen Metadatamain)  #TODO: change metaDataHash, jetzt tag -> data(tags aus dem neuen Metadatamain)
 #TODO: erstes OSAS_meta ueberall durch self.metaDataHAst  
 #TODO: contentType aus den Metadaten  #TODO: contentType aus den Metadaten
   
 import urlparse  import urlparse
Line 83  class ECHO_resource(CatalogAware,Folder, Line 82  class ECHO_resource(CatalogAware,Folder,
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
           
     def getMetaDataManager(self):  #    def getMetaDataManager(self):
          """hole eine Instanz von MetaDataFolder  #        """hole eine Instanz von MetaDataFolder
          TODO: sollte konfigurierbar sein.   #        TODO: sollte konfigurierbar sein. 
          zur Zeit wird enfach nur self.metadata falls vorhanden zurueckggegeben.  #        zur Zeit wird enfach nur self.metadata falls vorhanden zurueckggegeben.
          """  #        """
       #   
          mf= getattr(self,"metadataFolder",None)  #        mf= getattr(self,"metadataFolder",None)
          #logging.debug("MetadataManager:"+repr(mf))  #        #logging.debug("MetadataManager:"+repr(mf))
          return mf  #        return mf
            #        
   
     def index_meta(self,RESPONSE=None):      def index_meta(self,RESPONSE=None):
         """ gibt das im metalink gespeicher xml-file zurueck"""          """ gibt das im metalink gespeicher xml-file zurueck"""
Line 136  class ECHO_resource(CatalogAware,Folder, Line 135  class ECHO_resource(CatalogAware,Folder,
         self.reindex_object()          self.reindex_object()
       
       
     security.declareProtected('View','createPDF')  
     def createPDF(self,RESPONSE=None,local=None,dpi=150):  
             """erzeuge pdf file"""  
             pages=1  
             dpi=float(dpi)  
             imagePath=self.getImagePath().replace("/mpiwg/online","")  
               
               
             image="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn="+imagePath+"&dw=%i&dh=%i&pn=%i"  
             xmlInfo="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/dlInfo-xml.jsp?fn="+imagePath  
   
             dom=xml.dom.minidom.parse(urllib.urlopen(xmlInfo))  
             for parameter in dom.getElementsByTagName('parameter'):  
                     if parameter.getAttribute('name')=="pt":  
                             pages=int(parameter.getAttribute('value'))  
                             break  
               
   
             tempdir="/tmp/archivesImageServer"  
             if not os.path.exists(tempdir):  
                     os.mkdir(tempdir)   
     
             tmpPath=tempfile.mkdtemp(dir=tempdir)  
               
   
             tmpZip=tempfile.mktemp(dir=tempdir)  
   
             tmpFn=os.path.split(tmpZip)[1]  
   
   
       
   
             if RESPONSE:  
                     RESPONSE.setHeader("Content-Type","text/html")  
                     RESPONSE.write("<h1>I am creating  the pdf</h1>")  
                     txt="<h3>1. step: getting the images( %i pages)</h3>"%pages  
                     RESPONSE.write(txt)  
   
             c=canvas.Canvas(tmpZip)  
             for i in range(1,pages+1):  
                     if RESPONSE:  
                             RESPONSE.write(str("<p>Get Page: %i<br>\n"%i))  
                     faktor=dpi/72.0  
                       
                     fn=tmpPath+"/%i"%i  
   
                     width,height=A4  
                     #print image%(width*faktor,height*faktor,i)  
                     url=urllib.urlopen(image%(width*faktor,height*faktor,i)).read()  
                     fh=file(fn,"w")  
                     fh.write(url)  
                     fh.close()  
   
       
   
                     c.drawImage(fn,0,0,width=width,height=height)  
                     c.showPage()  
             c.save()  
             if RESPONSE:  
                     RESPONSE.write("<p>finished<br>\n")  
   
             if RESPONSE:  
                     len=os.stat(tmpZip)[6]  
                     downloadUrl=self.absolute_url()+"/downloadPDF"  
                     RESPONSE.write("""<h1><a href="downloadPDF?fn=%s">Click here for download ( %i Byte)</a></h1>\n"""%(tmpFn,len))  
                     RESPONSE.write("""<p>The file will be stored for a while, you can download it later, the URL is:</p>  
                     <p><a href="downloadPDF?fn=%s">%s?fn=%s</a></h1>\n"""%(tmpFn,downloadUrl,tmpFn))  
                     RESPONSE.close()  
   
   
     def downloadPDF(self,fn):  
             """download prepared set"""  
             filename="/tmp/archivesImageServer/"+fn  
             namePDF=self.getId()+".pdf"  
             self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%namePDF)  
             self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")  
             len=os.stat(filename)[6]  
             self.REQUEST.RESPONSE.setHeader("Content-Length",len)  
             images=file(filename).read()  
             self.REQUEST.RESPONSE.write(images)  
             self.REQUEST.RESPONSE.close()  
   
   
     def getRDF(self,urn=None):      def getRDF(self,urn=None):
Line 675  class ECHO_resource(CatalogAware,Folder, Line 593  class ECHO_resource(CatalogAware,Folder,
             return []              return []
   
   
     def getStorageManagerResourceURL(self):  #    def getStorageManagerResourceURL(self):
         """get the link to storage"""  #        """get the link to storage"""
         urlbase=self.getStorageManagerURL();  #        urlbase=self.getStorageManagerURL();
           #        
         #now get the path from the metadatalink  #        #now get the path from the metadatalink
           #        
         path = self.correctPath(self.getMetaDataLink())  #        path = self.correctPath(self.getMetaDataLink())
         if path is None:  #        if path is None:
             return ""  #            return ""
         else:  #        else:
             path=path.replace("index.meta","")  #            path=path.replace("index.meta","")
             return urlbase+path  #            return urlbase+path
           #        
                   
     def correctPath(self,path):      def correctPath(self,path):
         #take only the path of the url which starts with /permanent or /experimental          #take only the path of the url which starts with /permanent or /experimental
Line 1094  class ECHO_resource(CatalogAware,Folder, Line 1012  class ECHO_resource(CatalogAware,Folder,
 #        """Ausgabe der MD"""  #        """Ausgabe der MD"""
 #        return getattr(self,item)  #        return getattr(self,item)
   
     def checkRDF(self,path):      def checkPDF(self,path):
             """check if pdf in the path"""              """check if pdf in the path"""
             try:              try:
                     for fileName in os.listdir(path):                      for fileName in os.listdir(path):
Line 1108  class ECHO_resource(CatalogAware,Folder, Line 1026  class ECHO_resource(CatalogAware,Folder,
     security.declareProtected('View','index_html')      security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         pdf=self.checkRDF(self.link)          pdf=self.checkPDF(self.link)
         if pdf:          if pdf:
                 fh=file(pdf,'r').read()                  fh=file(pdf,'r').read()
                 self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf')                  self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf')
Line 1150  class ECHO_resource(CatalogAware,Folder, Line 1068  class ECHO_resource(CatalogAware,Folder,
                     return sp[0][1]()                      return sp[0][1]()
   
   
     security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination      security.declarePublic('generate_label') 
   
     def generate_label(self):      def generate_label(self):
         """Erzeugt_standard_Label aus Template"""          """Erzeugt_standard_Label aus Template"""
Line 1158  class ECHO_resource(CatalogAware,Folder, Line 1076  class ECHO_resource(CatalogAware,Folder,
         return self.label          return self.label
                   
   
     security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination      security.declarePublic('generate_title') 
   
     def generate_title(self,RESPONSE=None):      def generate_title(self,RESPONSE=None):
         """Erzeugt_standard_Label aus Template"""          """Erzeugt_standard_Label aus Template"""
         self.title=self.generate_label();          self.title=self.generate_label();

Removed from v.1.6.2.4  
changed lines
  Added in v.1.6.2.5


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