Diff for /ECHO_content/VLPExtension.py between versions 1.86 and 1.93

version 1.86, 2008/12/17 12:02:53 version 1.93, 2010/09/14 12:44:57
Line 17  from types import * Line 17  from types import *
 from Globals import package_home  from Globals import package_home
 import transaction  import transaction
 import Acquisition  import Acquisition
   import re
   import logging
   
 from Products.ECHO_content.ECHO_collection import *  from Products.ECHO_content.ECHO_collection import *
 from vlp_xmlhelpers import *  from vlp_xmlhelpers import *
Line 163  def manage_addSendMailForm(self, id, toA Line 165  def manage_addSendMailForm(self, id, toA
   
                   
 class VLP_collectionFolder(Folder):  class VLP_collectionFolder(Folder):
     """klasse fŸr folder innheralb der collection"""      """klasse fuer folder innerhalb der collection"""
     meta_type="VLP_collectionFolder"      meta_type="VLP_collectionFolder"
           
 class VLP_essay(Folder):  class VLP_essay(Folder):
Line 486  def manage_addVLP_subCollection(self,id, Line 488  def manage_addVLP_subCollection(self,id,
 from zope.publisher.interfaces import IPublishTraverse  from zope.publisher.interfaces import IPublishTraverse
 from zope.interface import implements  from zope.interface import implements
 from zope.publisher.interfaces import NotFound   from zope.publisher.interfaces import NotFound 
 from zope.app import zapi   #from zope.app import zapi 
 from zope.component import queryMultiAdapter  from zope.component import queryMultiAdapter
 try:  try:
     from ZPublisher.BaseRequest import DefaultPublishTraverse      from ZPublisher.BaseRequest import DefaultPublishTraverse
Line 499  class VLP_collection(ECHO_collection,Acq Line 501  class VLP_collection(ECHO_collection,Acq
   
           
     implements(IPublishTraverse)      implements(IPublishTraverse)
       
       
       def foxridgePath2vlp(self,url,mk,RESPONSE=None):
           """convertiert einen pfad zu einer url in vlp"""
           litRe = re.match(r".*lit([0-9]*)",url)
           logging.debug("foxridgePath2vlp URL:"+repr(url))
           lit = "lit"+litRe.group(1)
           splitted=url.split("/")
           path=splitted[-1].split(".")[0]
           newUrl=lit+"?p=%s&mk=%s"%(path,mk)
           
           if RESPONSE:
               RESPONSE.redirect(newUrl)
               return
               
           return newUrl
         
     def findObjFromLitName(self,fileName):      def findObjFromLitName(self,fileName):
         if not fileName[0:3]=="lit":          if not fileName[0:3]=="lit":
             logging.error("getOrCreateFolder wrong filename: %s"%fileName)              logging.error("getOrCreateFolder wrong filename: %s"%fileName)
Line 527  class VLP_collection(ECHO_collection,Acq Line 546  class VLP_collection(ECHO_collection,Acq
         
         if name.startswith("lit"): #umleitung wenn lit aufgerufen wirk          if name.startswith("lit"): #umleitung wenn lit aufgerufen wirk
             # umleitung auf den eigentlichen folder nur wenn direkt der Folder litXXX oder dessen index_html methode aufgerufen wird              # umleitung auf den eigentlichen folder nur wenn direkt der Folder litXXX oder dessen index_html methode aufgerufen wird
             if lastActual.startswith("lit") or (lastActual=="index_html") or (lastActual=="index_meta") or   (lastActual=="getTitle") or   (lastActual=="getMetaDataLink"):               if lastActual.startswith("lit") or (lastActual=="index_html") or (lastActual=="index_meta") or   (lastActual=="getTitle") or   (lastActual=="getMetaDataLink") or (lastActual=="hasTranscription") or (lastActual=="transcription"): 
                 #obj=self. ZopeFind(self,obj_ids=[name],search_sub=1)                  #obj=self. ZopeFind(self,obj_ids=[name],search_sub=1)
                 ob=self.findObjFromLitName(name)                  ob=self.findObjFromLitName(name)
                 if not ob:                  if not ob:
Line 586  class VLP_collection(ECHO_collection,Acq Line 605  class VLP_collection(ECHO_collection,Acq
                     col = foundCol                      col = foundCol
                     logging.debug("generateSubCollections: subcollection %s exists (%s)"%(repr(col),found.reference))                      logging.debug("generateSubCollections: subcollection %s exists (%s)"%(repr(col),found.reference))
                     logging.debug(repr([col.title,found.titlerefdisplay,col.label,found.titlerefdisplay]))                      logging.debug(repr([col.title,found.titlerefdisplay,col.label,found.titlerefdisplay]))
                     if (unicodify(col.title) != found.titlerefdisplay) or (unicodify(col.label) != found.titlerefdisplay):                      if (unicodify(col.title) != unicodify(found.titlerefdisplay)) or (unicodify(col.label) != unicodify(found.titlerefdisplay)):
                         # subcollection seems to have changed                              # subcollection seems to have changed    
                         logging.debug("generateSubCollections: subcollection has changed, recreating!")                          logging.debug("generateSubCollections: subcollection has changed, recreating!")
                         col.aq_parent.manage_delObjects([col.getId()])                          col.aq_parent.manage_delObjects([col.getId()])
Line 642  class VLP_collection(ECHO_collection,Acq Line 661  class VLP_collection(ECHO_collection,Acq
             logging.error("getOrCreateFolder wrong filename: %s"%fileName)              logging.error("getOrCreateFolder wrong filename: %s"%fileName)
             return None              return None
                   
                   try:
         restName="%08d"%int(fileName[3:])          restName="%08d"%int(fileName[3:])
           except:
               logging.error("getOrCreateFolder wrong filename: %s"%fileName)
               return None
                   
         fs=(restName[0:2],restName[0:4],restName[0:6])          fs=(restName[0:2],restName[0:4],restName[0:6])
                   
Line 740  class VLP_collection(ECHO_collection,Acq Line 762  class VLP_collection(ECHO_collection,Acq
                     errorsTXT+="<p>File not created:%s  (ERROR: %s %s)</p>\n"%(fileName,error[0],error[1])                      errorsTXT+="<p>File not created:%s  (ERROR: %s %s)</p>\n"%(fileName,error[0],error[1])
         return errorsTXT          return errorsTXT
             
     def updateCollection(self,forceUpdate=False,RESPONSE=None):      def updateCollection(self,forceUpdate=True,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"""
                   
         # update subcollections           # update subcollections 
Line 807  class VLP_resource(ECHO_resource,Cacheab Line 829  class VLP_resource(ECHO_resource,Cacheab
   
     meta_type="VLP_resource"      meta_type="VLP_resource"
   
       def _p_resolveConflict(self,oldstate,savedstate,newstate):
           logging.debug("updateCollection: Have to resolve conflict!")
           return newstate
   
     #vlp_basis="/mpiwg/online/permanent/vlp"      #vlp_basis="/mpiwg/online/permanent/vlp"
   
           
Line 831  class VLP_resource(ECHO_resource,Cacheab Line 857  class VLP_resource(ECHO_resource,Cacheab
         logging.debug(title)          logging.debug(title)
         return title          return title
           
    
           
     def getImagePath(self):      def getImagePath(self):
             """Pfad zu den Images"""              """Pfad zu den Images"""
             path=None              path=None
Line 842  class VLP_resource(ECHO_resource,Cacheab Line 870  class VLP_resource(ECHO_resource,Cacheab
             # workaround in some cases there seem to be no pictures in pages              # workaround in some cases there seem to be no pictures in pages
                           
             if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')):              if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')):
                 if len (os.listdir(self.vlp_basis,self.resourceID,'pagesHi')) > len(os.listdir(path)):  
           
           pagesHi = os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))
           if path is None:
               return os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
   
               pages = os.listdir(path)
   
                   if len (pagesHi) > len(pages):
   
               countHi=0
               for p in pagesHi:
               dat,ext = os.path.splitext(p)
               if ext.lower() in [".tiff",".tif",".jpg"]:
                   countHi+=1
               count=0
               for p in pages:
               dat,ext = os.path.splitext(p)
               if ext.lower() in [".tiff",".tif",".jpg"]:
                   count+=1
               
               if countHi > count:
                           path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
               
                           logging.error("pages < pagesHi:  %s"%self.resourceID)
               if path is None:
   
               
                   if len (os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))) > len(os.listdir(path)):
                       
                       
                       
                     path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi')                      path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
                     logging.error("pages < pagesHi:  %s"%self.resourceID)                      logging.error("pages < pagesHi:  %s"%self.resourceID)
             else:              else:
   
                     logging.error("no images:  %s"%self.resourceID)                      logging.error("no images:  %s"%self.resourceID)
                     return None                          return None    
   
           return path 
   
                           
     def transcription(self):      def transcription(self):
             """show the rendered transcriptiofile"""              """show the rendered transcriptiofile"""
Line 908  class VLP_resource(ECHO_resource,Cacheab Line 970  class VLP_resource(ECHO_resource,Cacheab
   
                     ret+="</text>"                      ret+="</text>"
                     re2=ret[0:]                      re2=ret[0:]
                     re3=re2.decode('latin-1').encode('utf-8')                      re3=self.unicodify(re2)
                     #re3=re2                      #re3=re2
                     ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText'])                      ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText'])
                                           
Line 929  class VLP_resource(ECHO_resource,Cacheab Line 991  class VLP_resource(ECHO_resource,Cacheab
             else:              else:
                     return "no: %s"%self.getId()                      return "no: %s"%self.getId()
                           
       def hasTranscription(self):
           """transcription"""
          
           if not hasattr(self,'fulltext'):
               self.copyTranscriptionFromDB()
           if not hasattr(self,'fulltext'): #still not
               return False
           
           return True 
               
     def resetMetaLink(self,all="no",RESPONSE=None):      def resetMetaLink(self,all="no",RESPONSE=None):
         """resets metalink to standard resp. in case of server change it sets to the new server url"""          """resets metalink to standard resp. in case of server change it sets to the new server url"""
         if all=="yes":          if all=="yes":
Line 1074  class VLP_resource(ECHO_resource,Cacheab Line 1146  class VLP_resource(ECHO_resource,Cacheab
             ret="%s: %s"%(str[0],name)              ret="%s: %s"%(str[0],name)
             return ret              return ret
   
         self.imagePath=self.getImagePath();          self.imagePathFull=self.getImagePath();
         if (selfImagePath is None):      self.imagePath=self.imagePathFull.split("/")[-1]
           if (self.imagePath is None):
             return None              return None
                   
         temp=[]          temp=[]
         ret = os.listdir(self.imagePathj);          ret = os.listdir(self.imagePathFull)
                   
         ret.sort()          ret.sort()
         for x in ret:          for x in ret:

Removed from v.1.86  
changed lines
  Added in v.1.93


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