Diff for /OSAS/OSA_system/OSAS_show.py between versions 1.20 and 1.36

version 1.20, 2004/04/15 20:48:01 version 1.36, 2010/02/15 19:09:00
Line 10  from OFS.SimpleItem import SimpleItem Line 10  from OFS.SimpleItem import SimpleItem
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from Globals import InitializeClass  from Globals import InitializeClass,package_home
   import zLOG
   
 class OSAS_ShowOnline(SimpleItem):  class OSAS_ShowOnline(SimpleItem):
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
Line 25  class OSAS_ShowOnline(SimpleItem): Line 26  class OSAS_ShowOnline(SimpleItem):
     security.declareProtected('View','index_html')      security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """main view"""          """main view"""
         pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_ViewFiles.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_ViewFiles.zpt')).__of__(self)
         return pt()          return pt()
           
     def getfilesystem2(self,start,reload=0):      def getfilesystem2(self,start,reload=0):
Line 54  class OSAS_ShowOnline(SimpleItem): Line 55  class OSAS_ShowOnline(SimpleItem):
         return hasMetafile(path)          return hasMetafile(path)
   
     def getMetafile(self,path):      def getMetafile(self,path):
         return getMetafile(path)          
           return getMetafile(path).decode('utf-8')
   
     def toggle_view(self,path,file):      def toggle_view(self,path,file):
         """Oeffnen bzw. schließen der Subfolders"""          """Oeffnen bzw. schliessen der Subfolders"""
         self.tree(path).toggle(path,file)          self.tree(path).toggle(path,file)
         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)          return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)
   
Line 66  InitializeClass(OSAS_ShowOnline) Line 68  InitializeClass(OSAS_ShowOnline)
   
 def manage_AddOSAS_ShowOnlineForm(self):  def manage_AddOSAS_ShowOnlineForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_ShowOnline.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_ShowOnline.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None):  def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None):
Line 78  def manage_AddOSAS_ShowOnline(self,id,RE Line 80  def manage_AddOSAS_ShowOnline(self,id,RE
   
   
 class OSAS_StoreOnline(SimpleItem):  class OSAS_StoreOnline(SimpleItem):
     """Webfrontend für das Storagesystem"""      """Webfrontend fuer das Storagesystem"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
           
     def __init__(self,id):      def __init__(self,id):
Line 90  class OSAS_StoreOnline(SimpleItem): Line 92  class OSAS_StoreOnline(SimpleItem):
     security.declareProtected('View','index_html')      security.declareProtected('View','index_html')
     def index_html(self):      def index_html(self):
         """main view"""          """main view"""
         pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_StoreFiles.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_StoreFiles.zpt')).__of__(self)
         return pt()          return pt()
   
     def readContexts(self,path):      def readContexts(self,path):
Line 106  class OSAS_StoreOnline(SimpleItem): Line 108  class OSAS_StoreOnline(SimpleItem):
     def rescaleThumbs(self,path):      def rescaleThumbs(self,path):
         """rescale thumbs of images in path"""          """rescale thumbs of images in path"""
   
         os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 --replace >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']))          dlpath = re.sub('/mpiwg/online/','',self.REQUEST['path'])
           ret=os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=100 -sync >> /tmp/sc.out &"%dlpath )
           #os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 --replace >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']))
       zLOG.LOG("OSAS_StoreOnline (rescleThumbs)",zLOG.INFO,ret.read())
       zLOG.LOG("OSAS_StoreOnline (rescleThumbs)",zLOG.INFO,"ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=100 -sync >> /tmp/sc.out &"%dlpath)
         self.REQUEST.SESSION['path']=self.REQUEST['path']          self.REQUEST.SESSION['path']=self.REQUEST['path']
         #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])          #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])
         pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_scaled.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_scaled.zpt')).__of__(self)
         return pt()          return pt()
   
           
Line 140  class OSAS_StoreOnline(SimpleItem): Line 145  class OSAS_StoreOnline(SimpleItem):
         return hasMetafile(path)          return hasMetafile(path)
   
     def getMetafile(self,path):      def getMetafile(self,path):
         return getMetafile(path)          
           return getMetafile(path).decode('utf-8')
   
     def toggle_view(self,path,file):      def toggle_view(self,path,file):
         """Oeffnen bzw. schließen der Subfolders"""          """Oeffnen bzw. schliessen der Subfolders"""
         self.tree(path).toggle(path,file)          self.tree(path).toggle(path,file)
         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)          return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)
   
Line 159  class OSAS_StoreOnline(SimpleItem): Line 165  class OSAS_StoreOnline(SimpleItem):
         """Test ob Eintrag ein Folder ist"""          """Test ob Eintrag ein Folder ist"""
         return isFullText(path,folder_name)          return isFullText(path,folder_name)
   
       def isPdf(self,path,folder_name):
           """Test ob Eintrag ein Folder mit pdf2 ist"""
           return isPdf(path,folder_name)
   
   
     def isPresentation(self,path,folder_name):      def isPresentation(self,path,folder_name):
         """Test ob Eintrag ein Folder ist"""          """Test ob Eintrag ein Folder ist"""
         return isPresentation(path,folder_name)          return isPresentation(path,folder_name)
Line 168  class OSAS_StoreOnline(SimpleItem): Line 179  class OSAS_StoreOnline(SimpleItem):
   
     def addFolderForm(self,path):      def addFolderForm(self,path):
         """add a new path"""          """add a new path"""
         pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addFolder.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_addFolder.zpt')).__of__(self)
         return pt()          return pt()
   
     def showHelp(self,refType,genericTag):      def showHelp(self,refType,genericTag):
Line 193  class OSAS_StoreOnline(SimpleItem): Line 204  class OSAS_StoreOnline(SimpleItem):
         """Editiere das Index Metafile"""          """Editiere das Index Metafile"""
         try:          try:
             dom=xml.dom.minidom.parse(path+"/index.meta")              dom=xml.dom.minidom.parse(path+"/index.meta")
             indexmeta=dom.toxml()              indexmeta=dom.toxml(encoding='UTF-8')
         except:          except:
             indexmeta=""              indexmeta=""
                           
         self.REQUEST.SESSION['indexmeta']=indexmeta          self.REQUEST.SESSION['indexmeta']=indexmeta
         self.REQUEST.SESSION['path']=path          self.REQUEST.SESSION['path']=path
         newtemplate=PageTemplateFile('Products/OSA_system/zpt/editindex').__of__(self)          newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editindex')).__of__(self)
         return newtemplate()          return newtemplate()
   
     def EditIndex2(self):      def EditIndex2(self):
Line 220  class OSAS_StoreOnline(SimpleItem): Line 231  class OSAS_StoreOnline(SimpleItem):
               
     def add_metafile(self):      def add_metafile(self):
         """nothing"""          """nothing"""
         pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addmetadata.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_addmetadata.zpt')).__of__(self)
         return pt()          return pt()
   
     def getTextToolsField(self,path,name,default=''):      def getTextToolsField(self,path,name,default=''):
Line 231  class OSAS_StoreOnline(SimpleItem): Line 242  class OSAS_StoreOnline(SimpleItem):
             node=dom.getElementsByTagName('texttool')[0] #getNode              node=dom.getElementsByTagName('texttool')[0] #getNode
             subnode=node.getElementsByTagName(name)[0]              subnode=node.getElementsByTagName(name)[0]
                           
               # bei text wird nur der Folder gebraucht
               if name=="text":
                   splitted=getText(subnode.childNodes).split("/")
                   return splitted[len(splitted)-2]
               else:
             return getText(subnode.childNodes)              return getText(subnode.childNodes)
         except:          except:
             return default              return default
                           
     def getProjects(self,obj_ids=None):      def getViewerTemplateSets(self,obj_ids=None):
         """Get the Project title for configuration"""          """Get the ViewerTemplateSet title for configuration"""
         ret=[]          ret=[]
                   
         try:          try:
             projects=self.ZopeFind(self.projects,obj_metatypes=['OSAS_project'],obj_ids=obj_ids)#assumes projects folder somewhere in the hierarchie.              viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
                           
             for project in projects:              for viewerTemplateSet in viewerTemplateSets:
                 ret.append((project[1].title,project[0],project[1]))                  ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1]))
                           
             return ret              return ret
                   
         except:          except:
             return [('no Projectfolders','')]              return [('no ViewerTemplateSetfolders','')]
   
     def changeTemplatesForm(self,path):      def changeTemplatesForm(self,path):
         """changeform"""          """changeform"""
         path=self.REQUEST.SESSION['path']=path          path=self.REQUEST.SESSION['path']=path
         pt=PageTemplateFile('Products/OSA_system/zpt/changeTemplatesForm.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeTemplatesForm.zpt')).__of__(self)
         return pt()          return pt()
   
                   
   
     def changeTemplates(self,path):      def changeTemplates(self,path,RESPONSE=None):
         """Andere alle Eintraege in index.meta"""          """Andere alle Eintraege in index.meta"""
         #os.path.walk(path,OSAS_helpers.changeIndexMeta,startpage,xslt,thumbtemplate,topbar,digiLibTemplate)  
         print self.REQUEST.form  
   
   
         os.path.walk(path,OSAS_helpers.changeIndexMeta,self.REQUEST.form)          os.path.walk(path,OSAS_helpers.changeIndexMeta,self.REQUEST.form)
           if RESPONSE is not None:
                   RESPONSE.redirect(self.REQUEST['URL1']+"?path="+self.REQUEST.SESSION['path'])
                   
                   
 InitializeClass(OSAS_StoreOnline)  InitializeClass(OSAS_StoreOnline)
           
 def manage_AddOSAS_StoreOnlineForm(self):  def manage_AddOSAS_StoreOnlineForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_StoreOnline.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_StoreOnline.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None):  def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None):
Line 326  import xml.dom.minidom Line 340  import xml.dom.minidom
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 import tempfile  import tempfile
 tempfile.tempdir="/var/tmp/archiver"  tempfile.tempdir="/var/tmp"
   
 exclusion=[".HSResource","lost+found","Network Trash Folder","TheFindByContentFolder","TheVolumeSettingsFolder"]  exclusion=[".HSResource","lost+found","Network Trash Folder","TheFindByContentFolder","TheVolumeSettingsFolder"]
   
 class fsentry(Implicit, Persistent, RoleManager):  class fsentry(Implicit, Persistent, RoleManager):
       """File entry class"""        """File entry class"""
       path = ""        path = ""
Line 559  class filesystem2(Implicit, Persistent, Line 574  class filesystem2(Implicit, Persistent,
       def loadfs(self,start):        def loadfs(self,start):
         """analyse filesystem"""          """analyse filesystem"""
         for line in self.getfs(start):          for line in self.getfs(start):
                       logging.debug("loadfs: reading %s"%repr(line))
         g=re.search(r"(.*/)(.*)\n",line)          g=re.search(r"(.*/)(.*)\n",line)
         if not g==None:          if not g==None:
                   try:                    try:
Line 567  class filesystem2(Implicit, Persistent, Line 582  class filesystem2(Implicit, Persistent,
                         file=g.group(2)                          file=g.group(2)
                   except:                    except:
                         """nothing"""                          """nothing"""
                     logging.debug("loadfs: file=%s"%repr(file))
                     #if file[0] in ('.',':'):
                         # skip dot-files
                     #    continue
                   if self.node.has_key(path):                    if self.node.has_key(path):
                  elements=self.node[path]                   elements=self.node[path]
                  elements.append(file)                   elements.append(file)
Line 637  class browse(Implicit, Persistent, RoleM Line 656  class browse(Implicit, Persistent, RoleM
       def filterExcluded(self,dir):        def filterExcluded(self,dir):
       ret=[]        ret=[]
       for item in dir:        for item in dir:
         if not item in exclusion:                  if not ((item in exclusion) or (item[0] in ('.',':'))):
             ret.append(item)               ret.append(item) 
       return ret        return ret
           
Line 953  def getBib(nodelist): Line 972  def getBib(nodelist):
                   
         if node.nodeType == node.ELEMENT_NODE:          if node.nodeType == node.ELEMENT_NODE:
        """nothing"""         """nothing"""
              
        rc = rc+"<tr><td valign='right'>"+str(node.nodeName)+":</td><td> "+getText(node.childNodes)+"</td></tr>"         rc = rc+"<tr><td valign='right'>"+str(node.nodeName)+":</td><td> "+getText(node.childNodes)+"</td></tr>"
              
     #print rc      #print rc
     return rc+"</table>"      return rc+"</table>"
   
Line 1012  def getMetafile(path): Line 1033  def getMetafile(path):
                 
 #        html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')  #        html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')
                 
        return html         return html.encode('utf-8')
   
 def hasMetafile(path):  def hasMetafile(path):
     """get index.meta"""      """get index.meta"""
Line 1070  def isFullText(path,folder_name): Line 1091  def isFullText(path,folder_name):
                           
             return 0              return 0
   
   def isPdf(path,folder_name):
         """check if foldername in path is full text"""
         try:
               dom=xml.dom.minidom.parse(path+"/index.meta")
               for node in dom.getElementsByTagName("dir"):
                     
                     if getText(node.getElementsByTagName("content-type")[0].childNodes).lower()=="pdf":
                           
                           if getText(node.getElementsByTagName("name")[0].childNodes)==folder_name:
                                 return 1
               return 0
         except:
               
               return 0
   
 def isPresentation(path,folder_name):  def isPresentation(path,folder_name):
       """check if foldername in path is full text"""        """check if foldername in path is full text"""
Line 1100  def changeName(path): Line 1135  def changeName(path):
             return "digifiles/"+re.search(r"(.*)/mpiwg/production/docuserver/(.*)",path).group(2)              return "digifiles/"+re.search(r"(.*)/mpiwg/production/docuserver/(.*)",path).group(2)
      else:         else:  
             return temp2.group(2)              return temp2.group(2)
       except: # hack - im archivbereich keine online darstellung gibt jetzt ein no zurück.        except: # hack - im archivbereich keine online darstellung gibt jetzt ein no zurueck.
             return "NO"              return "NO"
   
           
Line 1218  def getFile(self): Line 1253  def getFile(self):
       return self.REQUEST.SESSION['something']        return self.REQUEST.SESSION['something']
   
 def isFolder(self,path):  def isFolder(self,path):
       """returns TRUE, wenn path ein Folder ist in den weitere Objekte Folder oder Dokumente gelegt werden dürfen"""        """returns TRUE, wenn path ein Folder ist in den weitere Objekte Folder oder Dokumente gelegt werden duerfen"""
       return not isScannedDocument(self,path) # vorläufig sind alle Documente die keine scanned documente sind folder.        return not isScannedDocument(self,path) # vorlaeufig sind alle Documente die keine scanned documente sind folder.
   
 def isScannedDocument(self,path):  def isScannedDocument(self,path):
       """returns TRUE, wenn path der Stammordner eines gescannten Documents ist"""        """returns TRUE, wenn path der Stammordner eines gescannten Documents ist"""
       try:        try:
             f = file(path+"/index.meta","r")              f = file(path+"/index.meta","r")
               logging.debug("isscanneddocument: file=%s"%f)
             lines = f.read()              lines = f.read()
         
             try:              try:
                   dom = xml.dom.minidom.parseString(lines)                    dom = xml.dom.minidom.parseString(lines)
                   content_type=getText(dom.getElementsByTagName("content-type")[0].childNodes)                     content_type=getText(dom.getElementsByTagName("content-type")[0].childNodes) 
                     logging.debug("isscanneddocument: content_type=%s"%content_type)
                   if (content_type=="scanned-document") or (content_type=="scanned document") or (content_type=="fulltext document"):                    if (content_type=="scanned-document") or (content_type=="scanned document") or (content_type=="fulltext document"):
                         return 1                          return 1
                   else:                    else:

Removed from v.1.20  
changed lines
  Added in v.1.36


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