Annotation of OSA_system2/OSAS_root.py, revision 1.1
1.1 ! dwinter 1: """ OSAS_contains the basic classes for configuring the OSAS and basic objects for displaying data. All site specific adaptation should be made in OSAS_Root"""
! 2:
! 3: from OSAS_helpers import *
! 4: import OSAS_helpers
! 5: from OFS.SimpleItem import SimpleItem
! 6: from time import localtime,strftime
! 7: from Acquisition import Implicit
! 8: from OFS.Folder import Folder
! 9: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
! 10: from Products.PageTemplates.PageTemplate import PageTemplate
! 11: import urllib
! 12: from urlparse import *
! 13: import re
! 14: import xml.dom.minidom
! 15: from types import *
! 16: import zLOG
! 17: import os.path
! 18: from Globals import package_home
! 19:
! 20:
! 21: class OSAS_viewerObject(Folder):
! 22: """
! 23: Grundlegende Klasse fuer Viewer zur Zeit noch in Entwicklung
! 24:
! 25: """
! 26: meta_type="OSAS_ViewerObject__neu"
! 27:
! 28: def __init__(self,id,title,prefix,objectTypes,ignorePath=""):
! 29: """inititialisiere die Klasse
! 30:
! 31: :Parameters:
! 32: - `id` : Zope ID des Objektes
! 33: - `title`: Titel des Objektes
! 34: - `prefix` : URL bzw. URL Rumpf der Zusammen mit dem Pfad des Objectes die Anzeige URL ergibt
! 35: - `objectType` : liste von Objekttypen die mittels dieses Viewers angezeigt werden können.
! 36: - `ignorePath` : Pfad der bei dem übergebenen Pfad element ingnoriert werden soll. Optional.
! 37: """
! 38: self.id=id
! 39: self.title=title
! 40: self.prefix=prefix
! 41: self.objectTypes=toList(objectTypes)
! 42: self.ignorePath=ignorePath
! 43:
! 44: manage_options = Folder.manage_options+(
! 45: {'label':'Main Config','action':'changeViewerObjectForm'},
! 46: )
! 47:
! 48: def changeViewerObjectForm(self):
! 49: """Main configuration"""
! 50: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeViewerObjectForm.zpt')).__of__(self)
! 51: return pt()
! 52:
! 53: def changeViewerObject(self,title,prefix,objectTypes,ignorePath=None,RESPONSE=None):
! 54: """Change RootFolderName"""
! 55: self.title=title
! 56: self.prefix=prefix
! 57: self.ignorePath=ignorePath
! 58: self.objectTypes=toList(objectTypes)
! 59:
! 60: if RESPONSE is not None:
! 61: RESPONSE.redirect('manage_main')
! 62:
! 63:
! 64: def manage_addViewerObjectForm(self):
! 65: """form for adding a viewer Object"""
! 66: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','addViewerObjectForm.zpt')).__of__(self)
! 67: return pt()
! 68:
! 69: def manage_addViewerObject(self,id,title,prefix,objectTypes,ignorePath,RESPONSE=None):
! 70: """add the OSAS_root"""
! 71: newObj=OSAS_viewerObject(id,title,prefix,objectTypes,ignorePath)
! 72: self._setObject(id,newObj)
! 73:
! 74: if RESPONSE is not None:
! 75: RESPONSE.redirect('manage_main')
! 76:
! 77:
! 78: class OSAS_root(Folder,Implicit):
! 79: """Implicit Folder of the Storage Systems"""
! 80: def __init__(self,id,rootFolderName,uploadServletUrl=None):
! 81: """initialize a new instance
! 82:
! 83:
! 84: @param id: Zope ID des Objektes
! 85: @param rootFolderName : path zum root folder des Storagesystems
! 86: @param uploadServerletUrl : url des UploadServlets (required fuer batch upload)
! 87:
! 88: """
! 89:
! 90: self.id = id
! 91: self.rootFolderName = rootFolderName
! 92: self.uploadServletUrl=uploadServletUrl
! 93:
! 94: meta_type="OSAS_Root__neu"
! 95:
! 96: manage_options = Folder.manage_options+(
! 97: {'label':'Main Config','action':'changeRootForm'},
! 98: )
! 99:
! 100:
! 101: OSASObjectTypes=OSAS_helpers.OSASObjectTypes
! 102:
! 103: def changeRootForm(self):
! 104: """Main configuration"""
! 105: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeRootForm.zpt')).__of__(self)
! 106:
! 107: return pt()
! 108:
! 109: def changeRoot(self,rootFolderName,uploadServletUrl,RESPONSE=None):
! 110: """Change RootFolderName"""
! 111: self.rootFolderName=rootFolderName
! 112:
! 113: self.uploadServletUrl=uploadServletUrl
! 114:
! 115: if RESPONSE is not None:
! 116: RESPONSE.redirect('manage_main')
! 117:
! 118: localDate=localDate
! 119:
! 120: def getUploadServletUrl(self):
! 121: """gibt url des servlets zurueck"""
! 122: return self.uploadServletUrl
! 123:
! 124:
! 125: def downloadExternalXML(self,index_meta_url,xml_url):
! 126: """lade lese ein xml file aus URL und schreibe es in den localen Filebaum
! 127:
! 128: @param index_meta_url: url eines index.meta files auf dem lokalen Server, es gilt rootFolderName + pfad teil der url = pfad auf dem Server.
! 129: @param xml_url: externe url file hier ersetzt obiges index.meta
! 130: @return: 'error' als String bei Fehler 'ok' bei ok.
! 131: """
! 132:
! 133:
! 134: xmlneu=urllib.urlopen(xml_url).read()
! 135:
! 136: try:
! 137: dom=xml.dom.minidom.parseString(xmlneu)
! 138: except:
! 139:
! 140: zLOG.LOG('OSAS_Root (downloadExternalXML)',zLOG.ERROR,'cannot parse: %s', xml_url)
! 141: return "error"
! 142:
! 143:
! 144: path=self.rootFolderName+urlparse(index_meta_url)[2]
! 145:
! 146: fh=open(path,'w')
! 147:
! 148: fh.write(xmlneu)
! 149: fh.close()
! 150: return "ok"
! 151:
! 152:
! 153: def manage_addOSAS_rootForm(self):
! 154: """interface for adding the OSAS_root"""
! 155: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addOSAS_rootForm.zpt')).__of__(self)
! 156: return pt()
! 157:
! 158: def manage_addOSAS_root(self,id,RootFolderName,uploadServletUrl,RESPONSE=None):
! 159: """add the OSAS_root"""
! 160: newObj=OSAS_root(id,RootFolderName,uploadServletUrl)
! 161: self._setObject(id,newObj)
! 162: if RESPONSE is not None:
! 163: RESPONSE.redirect('manage_main')
! 164:
! 165:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>