changeset 52:92047eaa6272

zLOG exchanged by logging
author dwinter
date Wed, 24 Jan 2007 17:12:26 +0100
parents c5d3aabbf61b
children f4e0af8c281d
files documentViewer.py zpt/image_main.zpt
diffstat 2 files changed, 52 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/documentViewer.py	Thu Jan 11 21:27:17 2007 +0100
+++ b/documentViewer.py	Wed Jan 24 17:12:26 2007 +0100
@@ -2,7 +2,7 @@
 
 from OFS.Folder import Folder
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
-from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+from Products.PageTemplates.PageTemplateFile import PageTemplateFile 
 from AccessControl import ClassSecurityInfo
 from AccessControl import getSecurityManager
 from Globals import package_home
@@ -18,9 +18,14 @@
 import cgi
 import urllib
 import logging
-import zLOG
+
 import urlparse 
 
+def logger(txt,method,txt2):
+    """logging"""
+    logging.info(txt+ txt2)
+    
+    
 def getInt(number, default=0):
     """returns always an int (0 in case of problems)"""
     try:
@@ -109,7 +114,7 @@
         
         '''
         
-        zLOG.LOG("documentViewer (index)", zLOG.INFO, "mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn))
+        logger("documentViewer (index)", logging.INFO, "mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn))
         
         if not hasattr(self, 'template'):
             # create template folder if it doesn't exist
@@ -127,7 +132,8 @@
                 viewMode="text"
             else:
                 viewMode="images"
-                
+               
+
         return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode)
   
   
@@ -149,7 +155,7 @@
     
     def getStyle(self, idx, selected, style=""):
         """returns a string with the given style and append 'sel' if path == selected."""
-        #zLOG.LOG("documentViewer (getstyle)", zLOG.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style))
+        #logger("documentViewer (getstyle)", logging.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style))
         if idx == selected:
             return style + 'sel'
         else:
@@ -159,9 +165,9 @@
     def isAccessible(self, docinfo):
         """returns if access to the resource is granted"""
         access = docinfo.get('accessType', None)
-        zLOG.LOG("documentViewer (accessOK)", zLOG.INFO, "access type %s"%access)
+        logger("documentViewer (accessOK)", logging.INFO, "access type %s"%access)
         if access is not None and access == 'free':
-            zLOG.LOG("documentViewer (accessOK)", zLOG.INFO, "access is free")
+            logger("documentViewer (accessOK)", logging.INFO, "access is free")
             return True
         elif access is None or access in self.authgroups:
             # only local access -- only logged in users
@@ -172,7 +178,7 @@
             else:
                 return False
         
-        zLOG.LOG("documentViewer (accessOK)", zLOG.INFO, "unknown access type %s"%access)
+        logger("documentViewer (accessOK)", logging.INFO, "unknown access type %s"%access)
         return False
     
                 
@@ -184,7 +190,7 @@
             
         infoUrl=self.digilibBaseUrl+"/dirInfo-xml.jsp?mo=dir&fn="+path
     
-        zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo from %s"%(infoUrl))
+        logger("documentViewer (getparamfromdigilib)", logging.INFO, "dirInfo from %s"%(infoUrl))
         
         for cnt in range(num_retries):
             try:
@@ -193,12 +199,12 @@
                 dom = Parse(txt)
                 break
             except:
-                zLOG.LOG("documentViewer (getdirinfofromdigilib)", zLOG.ERROR, "error reading %s (try %d)"%(infoUrl,cnt))
+                logger("documentViewer (getdirinfofromdigilib)", logging.ERROR, "error reading %s (try %d)"%(infoUrl,cnt))
         else:
             raise IOError("Unable to get dir-info from %s"%(infoUrl))
         
         sizes=dom.xpath("//dir/size")
-        zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo:size"%sizes)
+        logger("documentViewer (getparamfromdigilib)", logging.INFO, "dirInfo:size"%sizes)
         
         if sizes:
             docinfo['numPages'] = int(getTextFromNode(sizes[0]))
@@ -231,7 +237,7 @@
                 dom = Parse(txt)
                 break
             except:
-                zLOG.LOG("ERROR documentViewer (getIndexMata)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2])
+                logger("ERROR documentViewer (getIndexMata)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
                 
         if dom is None:
             raise IOError("Unable to read index meta from %s"%(url))
@@ -260,7 +266,7 @@
                 dom = Parse(txt)
                 break
             except:
-                zLOG.LOG("ERROR documentViewer (getPresentationInfoXML)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2])
+                logger("ERROR documentViewer (getPresentationInfoXML)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
                 
         if dom is None:
             raise IOError("Unable to read infoXMLfrom %s"%(url))
@@ -270,7 +276,7 @@
         
     def getAuthinfoFromIndexMeta(self,path,docinfo=None,dom=None):
         """gets authorization info from the index.meta file at path or given by dom"""
-        zLOG.LOG("documentViewer (getauthinfofromindexmeta)", zLOG.INFO,"path: %s"%(path))
+        logger("documentViewer (getauthinfofromindexmeta)", logging.INFO,"path: %s"%(path))
         
         access = None
         
@@ -292,7 +298,7 @@
         
     def getBibinfoFromIndexMeta(self,path,docinfo=None,dom=None):
         """gets bibliographical info from the index.meta file at path or given by dom"""
-        zLOG.LOG("documentViewer (getbibinfofromindexmeta)", zLOG.INFO,"path: %s"%(path))
+        logger("documentViewer (getbibinfofromindexmeta)", logging.INFO,"path: %s"%(path))
         
         if docinfo is None:
             docinfo = {}
@@ -314,16 +320,23 @@
             docinfo['author']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['author'][0])[0])
             docinfo['title']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['title'][0])[0])
             docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0])
-        
+            
+            logging.info("bla")
+            try:
+                docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0])
+            except:
+                docinfo['lang']=''
         return docinfo
 
         
     def getDocinfoFromTextTool(self,url,dom=None,docinfo=None):
        """parse texttool tag in index meta"""
-       zLOG.LOG("documentViewer (getdocinfofromtexttool)", zLOG.INFO,"url: %s"%(url))
+       logger("documentViewer (getdocinfofromtexttool)", logging.INFO,"url: %s"%(url))
        if docinfo is None:
            docinfo = {}
            
+       if docinfo.get('lang',None) is None:
+           docinfo['lang']='' # default keine Sprache gesetzt
        if dom is None:
            dom = self.getIndexMeta(url)
        
@@ -334,7 +347,7 @@
        if archiveNames and (len(archiveNames)>0):
            archiveName=getTextFromNode(archiveNames[0])
        else:
-           zLOG.LOG("documentViewer (getdocinfofromtexttool)", zLOG.WARNING,"resource/name missing in: %s"%(url))
+           logger("documentViewer (getdocinfofromtexttool)", logging.WARNING,"resource/name missing in: %s"%(url))
        
        archivePaths=dom.xpath("//resource/archive-path")
        if archivePaths and (len(archivePaths)>0):
@@ -346,7 +359,7 @@
                archivePath += "/" + archiveName
        else:
            # try to get archive-path from url
-           zLOG.LOG("documentViewer (getdocinfofromtexttool)", zLOG.WARNING,"resource/archive-path missing in: %s"%(url))
+           logger("documentViewer (getdocinfofromtexttool)", logging.WARNING,"resource/archive-path missing in: %s"%(url))
            if (not url.startswith('http')):
                archivePath = url.replace('index.meta', '')
                
@@ -358,9 +371,14 @@
        if imageDirs and (len(imageDirs)>0):
            imageDir=getTextFromNode(imageDirs[0])
        else:
-           # we balk with no image tag
-           raise IOError("No text-tool info in %s"%(url))
-           
+           # we balk with no image tag / not necessary anymore because textmode is now standard
+           #raise IOError("No text-tool info in %s"%(url))
+           imageDir=""
+           docinfo['numPages']=1 # im moment einfach auf eins setzen, navigation ueber die thumbs geht natuerlich nicht
+       
+           docinfo['imagePath'] = "" # keine Bilder
+           docinfo['imageURL'] = ""
+
        if imageDir and archivePath:
            #print "image: ", imageDir, " archivepath: ", archivePath
            imageDir=os.path.join(archivePath,imageDir)
@@ -384,15 +402,17 @@
                      
    
        presentationUrls=dom.xpath("//texttool/presentation")
-       if presentationUrls and (len(presentationUrls)>0):
+       docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)   # get info von bib tag
+       
+       if presentationUrls and (len(presentationUrls)>0): # ueberschreibe diese durch presentation informationen 
             # presentation url ergiebt sich ersetzen von index.meta in der url der fŸr die Metadaten
             # durch den relativen Pfad auf die presentation infos
            presentationUrl=url.replace('index.meta',getTextFromNode(presentationUrls[0]))
            
            docinfo = self.getBibinfoFromTextToolPresentation(presentationUrl,docinfo=docinfo,dom=dom)
-       else:
-           docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)   
-       docinfo = self.getAuthinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)
+
+           
+
        return docinfo
    
    
@@ -407,7 +427,7 @@
     
     def getDocinfoFromImagePath(self,path,docinfo=None):
         """path ist the path to the images it assumes that the index.meta file is one level higher."""
-        zLOG.LOG("documentViewer (getdocinfofromimagepath)", zLOG.INFO,"path: %s"%(path))
+        logger("documentViewer (getdocinfofromimagepath)", logging.INFO,"path: %s"%(path))
         if docinfo is None:
             docinfo = {}
         path=path.replace("/mpiwg/online","")
@@ -423,13 +443,13 @@
     
     def getDocinfo(self, mode, url):
         """returns docinfo depending on mode"""
-        zLOG.LOG("documentViewer (getdocinfo)", zLOG.INFO,"mode: %s, url: %s"%(mode,url))
+        logger("documentViewer (getdocinfo)", logging.INFO,"mode: %s, url: %s"%(mode,url))
         # look for cached docinfo in session
         if self.REQUEST.SESSION.has_key('docinfo'):
             docinfo = self.REQUEST.SESSION['docinfo']
             # check if its still current
             if docinfo is not None and docinfo.get('mode') == mode and docinfo.get('url') == url:
-                zLOG.LOG("documentViewer (getdocinfo)", zLOG.INFO,"docinfo in session: %s"%docinfo)
+                logger("documentViewer (getdocinfo)", logging.INFO,"docinfo in session: %s"%docinfo)
                 return docinfo
         # new docinfo
         docinfo = {'mode': mode, 'url': url}
@@ -438,10 +458,10 @@
         elif mode=="imagepath":
             docinfo = self.getDocinfoFromImagePath(url, docinfo=docinfo)
         else:
-            zLOG.LOG("documentViewer (getdocinfo)", zLOG.ERROR,"unknown mode!")
+            logger("documentViewer (getdocinfo)", logging.ERROR,"unknown mode!")
             raise ValueError("Unknown mode %s"%(mode))
                         
-        zLOG.LOG("documentViewer (getdocinfo)", zLOG.INFO,"docinfo: %s"%docinfo)
+        logger("documentViewer (getdocinfo)", logging.INFO,"docinfo: %s"%docinfo)
         self.REQUEST.SESSION['docinfo'] = docinfo
         return docinfo
         
--- a/zpt/image_main.zpt	Thu Jan 11 21:27:17 2007 +0100
+++ b/zpt/image_main.zpt	Wed Jan 24 17:12:26 2007 +0100
@@ -1,4 +1,4 @@
 <tal:block tal:define="docinfo options/docinfo; pageinfo options/pageinfo; mode python:options.get('viewMode','images')">
  <iframe tal:condition="python:mode=='images'" height="100%" width="100%" tal:attributes="src string:${here/imageViewerUrl}fn=${docinfo/imagePath}&pn=${pageinfo/current}"/>
- <iframe tal:condition="python:mode=='text'" height="100%" width="100%" tal:attributes="src string:${here/textViewerUrl}fn=${docinfo/textURL}&pn=${pageinfo/current}"/>
+ <iframe tal:condition="python:mode=='text'" height="100%" width="100%" tal:attributes="src string:${here/textViewerUrl}fn=${docinfo/textURL}&pn=${pageinfo/current}&lang=${docinfo/lang}"/>
 </tal:block>