Diff for /ECHO_content/ECHO_collection.py between versions 1.308 and 1.314

version 1.308, 2010/02/15 19:03:28 version 1.314, 2012/01/04 13:23:00
Line 21  import tempfile Line 21  import tempfile
 import zipfile  import zipfile
 import re  import re
 import os,shutil  import os,shutil
   import traceback
 import OFS.Image  import OFS.Image
 from types import *  from types import *
 from OFS.Cache import Cacheable  from OFS.Cache import Cacheable
Line 57  import Ft.Xml.XPath Line 58  import Ft.Xml.XPath
 import cStringIO  import cStringIO
   
 import sys  import sys
   import logging
   
 try:  try:
         from psycopg import libpq          from psycopg import libpq
Line 701  class ECHO_collection(CatalogAware, Fold Line 703  class ECHO_collection(CatalogAware, Fold
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
   
       def getSection(self, crumbs=None):
           """returns the current section name"""
           # use breadcrumbs if available
           if crumbs is not None and len(crumbs) > 0:
               return crumbs[0][2].getId()
       
           p = self
         
           sec = None
           # descend parents to the root (and remember the last id)
           while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav':
               sec = p.getId()
               p = p.aq_parent
        
           return sec
       
       def getSubSection(self, crumbs=None):
           """returns the current subsection name"""
           # use breadcrumbs if available
           if crumbs is not None and len(crumbs) > 1:
               return crumbs[1][2].getId()
       
           p = self
           sec = None
           subsec = None
           # descend parents to the root (and remember the last id)
           while p is not None and p.meta_type != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav':
               subsec = sec
               sec = p.getId()
               p = p.aq_parent
             
           return subsec
   
           
     def exportImportObjects_html(self,RESPONSE):      def exportImportObjects_html(self,RESPONSE):
         """ImportObject"""          """ImportObject"""
Line 883  class ECHO_collection(CatalogAware, Fold Line 918  class ECHO_collection(CatalogAware, Fold
                 pt.content_type="text/html"                  pt.content_type="text/html"
                 return pt()                  return pt()
   
       def changeMetaLinks(self):
                   """change form"""
                   pt=zptFile(self, 'zpt/changeMetaLinkForm')
                   pt.content_type="text/html"
                   return pt()
   
     def changeTitles(self):      def changeTitles(self):
                 """change form"""                  """change form"""
                 pt=zptFile(self, 'zpt/changeTitleForm')                  pt=zptFile(self, 'zpt/changeTitleForm')
Line 938  class ECHO_collection(CatalogAware, Fold Line 979  class ECHO_collection(CatalogAware, Fold
                                         
                     try:                      try:
                             ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"                              ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                   logging
                             resource[1].metalink=argv[resource[1].getId()][0:]                              resource[1].metalink=argv[resource[1].getId()][0:]
                     except:                      except:
                             pass                              pass
Line 1003  class ECHO_collection(CatalogAware, Fold Line 1045  class ECHO_collection(CatalogAware, Fold
                             pass                              pass
             return ret              return ret
                 
     def importCollection(self,path=None,RESPONSE=None):      def changeMetaLinksInCollection(self):
               """change all lables of a collection"""
               ret=""
               argv=self.REQUEST.form
               
               resources=self.ZopeFind(self,obj_metatypes=['ECHO_pageTemplate','ECHO_movie','ECHO_resource','ECHO_collection','ECHO_link','ECHO_externalLink'])
               for resource in resources:
                      
                       try:
                               ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                               resource[1].metalink=argv[resource[1].getId()][0:]
                       except:
                               pass
               return ret
          
       def importCollection(self,path=None,viewerUrl=None,metaDataUrl=None,replacePathPermanent=None,replacePathExperimental=None,folderListFile=None,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"""
                   
         if path is None:          if (path is None) & (folderListFile is None):
                 pt=zptFile(self, 'zpt/importCollection.zpt')                  pt=zptFile(self, 'zpt/importCollection.zpt')
                 return pt()                  return pt()
   
           
           
           if (path !=""):
         files=os.listdir(path)          files=os.listdir(path)
               pathToFolder=path;
           else:
               pathToFolder="";
               files=[];
               for fileLine in folderListFile.readlines():
                   for fileLine2 in fileLine.split("\r"):
                       logging.debug("append:"+fileLine2)
                       files.append(fileLine2)
           
         ret=""          ret=""
         for fileName in files:          for fileName in files:
                           
             if fileName:              if fileName:
                   logging.debug("split:"+fileName);
                   if(pathToFolder==""): # pfad ist leer, da filename aud folderlistfile dann:
                       splitted=fileName.split("/");
                       path="/".join(splitted[0:-1]);
                       fileName=splitted[-1].rstrip().lstrip();
                       
                   
                   
                   if (replacePathExperimental and replacePathExperimental!=''):
                       path=re.sub(replacePathExperimental,"/mpiwg/online/experimental",path)
                                   
                 tempPath=re.sub("/mpiwg/online","",path)                  if (replacePathPermanent and replacePathPermanent!=''):
                 link="http://echo.mpiwg-berlin.mpg.de/zogilib_book?fn="+tempPath+"/"+fileName+"/pageimg"                      path=re.sub(replacePathPermanent,"/mpiwg/online/permanent",path)
                  
                   link=viewerUrl%(path+"/"+fileName+"/pageimg")
                   
                   metalink=metaDataUrl+re.sub("/mpiwg/online/","",path+"/"+fileName+"/index.meta")
                   
                   #metalink=metaDataUrl+"/"+path+"/"+fileName+"/index.meta"
                   
                   newindexMeta =re.sub("/mpiwg/online/","",path+"/"+fileName)
                                   
                 metalink=self.path+"/"+fileName+"/index.meta"  
                 try:                  try:
                       type=self.metadata.getBibTypeFromIndexMeta(newindexMeta)
   
                         #link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb"                      try:
                                                   
                         newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'generated','book','','','','','','')                              #link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb"
                               logging.debug("create:"+fileName);
                               logging.debug("type:"+type);
                               newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'',type,'','','','','','')
                         self._setObject(fileName,newObj)                          self._setObject(fileName,newObj)
                                   
                         genObj=getattr(self,fileName)                          genObj=getattr(self,fileName)
                         #genObj.createIndexFile()                          #genObj.createIndexFile()
                         ret+="OK:"+fileName+"<br/>"                          ret+="OK:"+fileName+"<br/>"
                 except:                  except:
                         print "ERROR"                              exc_type, exc_value, exc_traceback = sys.exc_info();    
                               #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
                               traceback.print_exception(exc_type, exc_value, exc_traceback,
                                     limit=2, file=sys.stdout)
                         ret+="ERROR:"+fileName+"<br/>"                          ret+="ERROR:"+fileName+"<br/>"
                   except:
                        exc_type, exc_value, exc_traceback = sys.exc_info();    
                        #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
                        traceback.print_exception(exc_type, exc_value, exc_traceback,
                                     limit=2, file=sys.stdout)
                        ret+="not a file ERROR:"+fileName+"<br/>"
   
         return ret          return ret
   
Line 1081  class ECHO_collection(CatalogAware, Fold Line 1180  class ECHO_collection(CatalogAware, Fold
                     RESPONSE.write("<html><body>")                      RESPONSE.write("<html><body>")
   
         for resource in resources:          for resource in resources:
               resource[1].newViewer=newViewer;
                           
             done,msg=resource[1].changeViewer(newViewer)  #             done,msg=resource[1].changeViewer(newViewer)
             if done:  #             if done:
                 if RESPONSE is not None:  #                 if RESPONSE is not None:
                     RESPONSE.write("<p>OK: %s"%resource[0])  #                     RESPONSE.write("<p>OK: %s"%resource[0])
             else:  #             else:
                 if RESPONSE is not None:  #                 if RESPONSE is not None:
                     RESPONSE.write("<p><a href='%s'>ERROR: %s (%s)</a>"%(resource[1].absolute_url()+'/ECHO_resource_config_main',resource[0],msg))  #                     RESPONSE.write("<p><a href='%s'>ERROR: %s (%s)</a>"%(resource[1].absolute_url()+'/ECHO_resource_config_main',resource[0],msg))
                                   
   
                                   
         if RESPONSE is not None:          if RESPONSE is not None:
                     RESPONSE.write("<p>Done</p></body></html>")                      RESPONSE.write("<p>Done</p></body></html>")
   
     def changeViewerTemplateSets(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix,RESPONSE=None):  
             """change the templates"""  
   
             resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1)  
   
             for resource in resources:  
   
                     resource[1].changeViewerTemplateSet(project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix)  
   
             if RESPONSE is not None:  
                     RESPONSE.redirect('manage_main')  
   
   
     def setStartpageFolderForm(self):      def setStartpageFolderForm(self):
             """Form for changing the startpage"""              """Form for changing the startpage"""
Line 1398  class ECHO_collection(CatalogAware, Fold Line 1486  class ECHO_collection(CatalogAware, Fold
         {'label':'Main Config','action':'ECHO_collection_config'},          {'label':'Main Config','action':'ECHO_collection_config'},
         {'label':'Change Labels','action':'changeLabels'},          {'label':'Change Labels','action':'changeLabels'},
         {'label':'Change Titles','action':'changeTitles'},          {'label':'Change Titles','action':'changeTitles'},
       {'label':'Change MetaLinks','action':'changeMetaLinks'},
           {'label':'Change Image Viewer','action':'changeViewerTemplateSetsForm'},
         {'label':'Localize','action':'localizeObjects'},          {'label':'Localize','action':'localizeObjects'},
         {'label':'Change Weights','action':'changeWeights'},          {'label':'Change Weights','action':'changeWeights'},
         {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},          {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'},
Line 1405  class ECHO_collection(CatalogAware, Fold Line 1495  class ECHO_collection(CatalogAware, Fold
         {'label':'Graphic Coords','action':'ECHO_graphicEntry'},          {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
         {'label':'create resources from XML','action':'createRessourcesFromXMLForm'},          {'label':'create resources from XML','action':'createRessourcesFromXMLForm'},
         {'label':'Set Startpage','action':'setStartpageFolderForm'},          {'label':'Set Startpage','action':'setStartpageFolderForm'},
         {'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'},  
         {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},          {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},
         {'label':'ImportCollection','action':'importCollection'},          {'label':'ImportCollection','action':'importCollection'},
         {'label':'Copy MD for indexing and search','action':'copySearchFields'},          {'label':'Copy MD for indexing and search','action':'copySearchFields'},
Line 1436  class ECHO_collection(CatalogAware, Fold Line 1525  class ECHO_collection(CatalogAware, Fold
   
                                   
     security.declarePublic('changeECHO_collection')               security.declarePublic('changeECHO_collection')         
     def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix="",isVisible=True):      def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix="",isVisible=True,fullTextBasisUrl=None):
         """Aenderung der Properties"""          """Aenderung der Properties"""
   
         self.secondaryLink=secondaryLink          self.secondaryLink=secondaryLink
Line 1448  class ECHO_collection(CatalogAware, Fold Line 1537  class ECHO_collection(CatalogAware, Fold
         self.prefix=prefix[0:]          self.prefix=prefix[0:]
         self.suffix=suffix[0:]          self.suffix=suffix[0:]
         self.setIsVisible(isVisible)          self.setIsVisible(isVisible)
           self.fullTextBasisUrl=fullTextBasisUrl
                   
         setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)          setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)
                                   
Line 1456  class ECHO_collection(CatalogAware, Fold Line 1546  class ECHO_collection(CatalogAware, Fold
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
                           
       def getFullTextBasisUrl(self):
           return self.fullTextBasisUrl
   
     def setAlwaysClickable(self,flag="yes"):      def setAlwaysClickable(self,flag="yes"):
             """set clickable"""              """set clickable"""
             if flag=="yes":              if flag=="yes":
Line 1467  class ECHO_collection(CatalogAware, Fold Line 1560  class ECHO_collection(CatalogAware, Fold
           
     def showOverview(self):      def showOverview(self):
         """overview"""          """overview"""
           # ECHO_overview.html template for this instance
         if 'ECHO_overview.html' in self.__dict__.keys():          if 'ECHO_overview.html' in self.__dict__.keys():
             return getattr(self,'ECHO_overview.html')()              return getattr(self,'ECHO_overview.html')()
           
           # ECHO_overview_main template in path
           if hasattr(self, 'ECHO_overview_main'):
               return getattr(self, 'ECHO_overview_main')()
           
           # template from product
         pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')          pt=zptFile(self, 'zpt/ECHO_content_overview.zpt')
         return pt()          return pt()
   
Line 1882  class ECHO_root(Folder,Persistent,Implic Line 1982  class ECHO_root(Folder,Persistent,Implic
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
     manage_options=Folder.manage_options+(      manage_options=Folder.manage_options+(
                 {'label':'Main Config','action':'ECHO_copyright_configForm'},  
                 {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},                  {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'},
                 {'label':'Change Weights','action':'changeWeights'},                  {'label':'Change Weights','action':'changeWeights'},
                 {'label':'Generate from RDF','action':'generateFromRDFForm'},                  {'label':'Generate from RDF','action':'generateFromRDFForm'},
Line 1891  class ECHO_root(Folder,Persistent,Implic Line 1990  class ECHO_root(Folder,Persistent,Implic
 )  )
   
   
   
   
     def getECHORootURL(self):      def getECHORootURL(self):
         return self.absolute_url()          return self.absolute_url()
           
Line 2247  class ECHO_root(Folder,Persistent,Implic Line 2348  class ECHO_root(Folder,Persistent,Implic
                     retStr+="""<option value="%s">%s\n"""%(contentType[0],contentType[0])                      retStr+="""<option value="%s">%s\n"""%(contentType[0],contentType[0])
         except:          except:
                 try:                  try:
                         for contentType in self.ZopeFind(self.standardMD,obj_metatypes=["OSAS_MetadataMapping"]):                          for contentType in self.ZopeFind(self.getStandardMD(),obj_metatypes=["OSAS_MetadataMapping"]):
                                 if selected and (contentType[0]==selected):                                  if selected and (contentType[0]==selected):
                                         retStr+="""<option selected value="%s">%s\n"""%(contentType[0],contentType[0])                                          retStr+="""<option selected value="%s">%s\n"""%(contentType[0],contentType[0])
                                 else:                                                  else:                

Removed from v.1.308  
changed lines
  Added in v.1.314


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