Diff for /ECHO_content/VLPExtension.py between versions 1.84 and 1.90

version 1.84, 2008/11/20 10:45:14 version 1.90, 2009/05/06 07:53:46
Line 488  from zope.interface import implements Line 488  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:
 from ZPublisher.BaseRequest import DefaultPublishTraverse  from ZPublisher.BaseRequest import DefaultPublishTraverse
   except:
       pass
   
 class VLP_collection(ECHO_collection,Acquisition.Explicit):  class VLP_collection(ECHO_collection,Acquisition.Explicit):
     """VLP spezifische Erweiterung der Collection"""      """VLP spezifische Erweiterung der Collection"""
Line 524  class VLP_collection(ECHO_collection,Acq Line 527  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"):              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 583  class VLP_collection(ECHO_collection,Acq Line 586  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 639  class VLP_collection(ECHO_collection,Acq Line 642  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 737  class VLP_collection(ECHO_collection,Acq Line 743  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 804  class VLP_resource(ECHO_resource,Cacheab Line 810  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"
   
           
       
     referencetypes=[]      referencetypes=[]
   
     manage_options=ECHO_resource.manage_options+Cacheable.manage_options+(      manage_options=ECHO_resource.manage_options+Cacheable.manage_options+(
Line 816  class VLP_resource(ECHO_resource,Cacheab Line 827  class VLP_resource(ECHO_resource,Cacheab
         {'label':'Generate Library Template','action':'generateLibraryTemplateHTML'},          {'label':'Generate Library Template','action':'generateLibraryTemplateHTML'},
         )          )
   
       def getMetaDataLink(self):
           """link auf die metatdaten"""
           return self.absolute_url()+"/index_meta"
   
   
       def getTitle(self):
           """Title der Ressource"""
           title= self.ZSQLSimpleSearch("""select title from vl_literature where reference= \'%s\'  """ %self.getId())[0].title
           logging.debug(title)
           return title
   
     def getImagePath(self):      def getImagePath(self):
             """Pfad zu den Images"""              """Pfad zu den Images"""
               path=None
                           
             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')                      path= os.path.join(self.vlp_basis,self.resourceID,'pageimg')
             elif os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pages')):              elif os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pages')):
                     return os.path.join(self.vlp_basis,self.resourceID,'pages')                      path = os.path.join(self.vlp_basis,self.resourceID,'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')):
   
           
           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(self.vlp_basis,self.resourceID,'pagesHi')) > len(os.listdir(path)):
                       
                       
                       
                       path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi')
                       logging.error("pages < pagesHi:  %s"%self.resourceID)
             else:              else:
                     return "<error>no images </error>"  
           
                       logging.error("no images:  %s"%self.resourceID)
                       return None   
   
           return path 
   
                           
     def transcription(self):      def transcription(self):
Line 887  class VLP_resource(ECHO_resource,Cacheab Line 949  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 908  class VLP_resource(ECHO_resource,Cacheab Line 970  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
               self._setObject('fulltext',None)
           
           if self.fulltext is None:
               return False
           else:
               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 1053  class VLP_resource(ECHO_resource,Cacheab Line 1128  class VLP_resource(ECHO_resource,Cacheab
             ret="%s: %s"%(str[0],name)              ret="%s: %s"%(str[0],name)
             return ret              return ret
   
         try:          self.imagePathFull=self.getImagePath();
             ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pageimg'))      self.imagePath=self.imagePathFull.split("/")[-1]
             self.imagePath='pageimg'          if (self.imagePath is None):
         except:              return None
             ret=os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pages'))          
             self.imagePath='pages'  
         temp=[]          temp=[]
           ret = os.listdir(self.imagePathFull)
           
         ret.sort()          ret.sort()
         for x in ret:          for x in ret:
             if (not (x[0] in ('.',':'))) and (not x[0:4] in excludeNames):              if (not (x[0] in ('.',':'))) and (not x[0:4] in excludeNames):
Line 1178  class VLP_resource(ECHO_resource,Cacheab Line 1254  class VLP_resource(ECHO_resource,Cacheab
             zt=getattr(self,'index.xml')              zt=getattr(self,'index.xml')
             if not forceUpdate:              if not forceUpdate:
                 # check if directory is newer (self.imagePath sould be set by now)                  # check if directory is newer (self.imagePath sould be set by now)
                 imgdir = os.path.join(self.vlp_basis, self.resourceID, self.imagePath)                  path = self.getImagePath()
                   if (path is None):
                       return "CREATE INDEX FILE NOT POSSIBLE"
                   imgdir = os.path.join(path)
                 dirtime = os.path.getmtime(imgdir)                  dirtime = os.path.getmtime(imgdir)
                 zttime = zt.bobobase_modification_time()                  zttime = zt.bobobase_modification_time()
                 logging.debug("createindexfile: dir %s of %s index of %s"%(imgdir,dirtime,zttime))                  logging.debug("createindexfile: dir %s of %s index of %s"%(imgdir,dirtime,zttime))

Removed from v.1.84  
changed lines
  Added in v.1.90


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