Annotation of OSAS/OSA_system/OSAS_Root.py, revision 1.21
1.11 dwinter 1: from OFS.SimpleItem import SimpleItem
1.2 dwinter 2: from time import localtime,strftime
3: from Acquisition import Implicit
1.1 dwinter 4: from OFS.Folder import Folder
5: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
6: from Products.PageTemplates.PageTemplate import PageTemplate
1.8 dwinter 7: import urllib
1.21 ! dwinter 8: import urlparse
1.20 dwinter 9: import sys
1.17 dwinter 10: import zLOG
1.9 dwinter 11: import re
1.13 dwinter 12: import xml.dom.minidom
1.19 dwinter 13: import os.path
14: from Globals import package_home
1.1 dwinter 15:
1.11 dwinter 16: class OSAS_ViewerObject(Folder):
17: """Beschreibung eines Viewers"""
18: meta_type="OSAS_ViewerObject"
19:
20: def __init__(self,id,title,prefix):
21: """init"""
22: self.id=id
23: self.title=title
24: self.prefix=prefix
25:
26: manage_options = Folder.manage_options+(
27: {'label':'Main Config','action':'changeViewerObjectForm'},
28: )
29:
30: def changeViewerObjectForm(self):
31: """Main configuration"""
1.18 dwinter 32: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeViewerObjectForm.zpt')).__of__(self)
1.11 dwinter 33: return pt()
34:
1.19 dwinter 35: def changeViewerObject(self,title,prefix,RESPONSE=None):
1.11 dwinter 36: """Change RootFolderName"""
37: self.title=title
38: self.prefix=prefix
39:
40:
41: if RESPONSE is not None:
42: RESPONSE.redirect('manage_main')
43:
44:
45: def manage_AddOSAS_ViewerObjectForm(self):
46: """interface for adding the viewer Object"""
1.18 dwinter 47: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_ViewerObject.zpt')).__of__(self)
1.11 dwinter 48: return pt()
49:
50: def manage_AddOSAS_ViewerObject(self,id,title,prefix,RESPONSE=None):
51: """add the OSAS_root"""
52: newObj=OSAS_ViewerObject(id,title,prefix)
53: self._setObject(id,newObj)
54: if RESPONSE is not None:
55: RESPONSE.redirect('manage_main')
56:
57:
1.2 dwinter 58: class OSAS_Root(Folder,Implicit):
59: """Implicit Folder of the Storage Systems"""
1.7 dwinter 60: def __init__(self,id,RootFolderName,DigILibURL,uploadServletUrl):
1.1 dwinter 61: """initialize a new instance"""
62: self.id = id
63: self.RootFolderName = RootFolderName
1.5 dwinter 64: self.DigILibURL=DigILibURL
1.7 dwinter 65: self.uploadServletUrl=uploadServletUrl
1.5 dwinter 66:
1.1 dwinter 67: meta_type="OSAS_Root"
68:
69: manage_options = Folder.manage_options+(
70: {'label':'Main Config','action':'Root_config'},
71: )
72:
1.11 dwinter 73:
74:
1.6 dwinter 75: def setDigILibURL(self):
76: """set"""
77: self.DigILibURL=""
78:
1.1 dwinter 79: def Root_config(self):
80: """Main configuration"""
1.18 dwinter 81: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ConfigOSAS_Root.zpt')).__of__(self)
1.1 dwinter 82: return pt()
83:
1.7 dwinter 84: def change_OSAS_Root(self,RootFolderName,DigILibURL,uploadServletUrl,RESPONSE=None):
1.1 dwinter 85: """Change RootFolderName"""
86: self.RootFolderName=RootFolderName
1.5 dwinter 87: self.DigILibURL=DigILibURL
1.7 dwinter 88: self.uploadServletUrl=uploadServletUrl
89:
1.1 dwinter 90: if RESPONSE is not None:
91: RESPONSE.redirect('manage_main')
1.2 dwinter 92:
93: def date(self):
94: """gives formatted date"""
95: return strftime("%d.%m.%Y",localtime())
1.1 dwinter 96:
1.7 dwinter 97: def getUploadServletUrl(self):
98: """get url"""
99: try:
100: self.uploadServletUrl=uploadServletUrl
101: except:
102: return "http://foxridge.rz-berlin.mpg.de:8000/upload/up"
1.8 dwinter 103:
104: def downloadExternalXML(self,index_meta_url,xml_url):
105: """lade xml file"""
1.15 dwinter 106: #print "GI"
107: #print xml_url
1.20 dwinter 108: try:
109: xmlneu=urllib.urlopen(xml_url).read()
110: except:
111: zLOG.LOG("OSASRoot (downloadExternalXML)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2])
112: zLOG.LOG("OSASRoot (downloadExternalXML)", zLOG.INFO,xml_url)
113: return "error"
1.13 dwinter 114: try:
115: dom=xml.dom.minidom.parseString(xmlneu)
116: except:
117: print "Error"
1.16 dwinter 118: return repr(xml_url)
1.13 dwinter 119: return "error"
120:
1.21 ! dwinter 121:
! 122: #TODO: direct access to the file system necessary, fix that also xmlrpc to the server where the index file is stored is possible
! 123: parsedUrl=urlparse.urlparse(index_meta_url)
! 124: path=parsedUrl[2]
1.13 dwinter 125:
126: fh=open(path,'w')
1.17 dwinter 127: zLOG.LOG("OSAS",zLOG.INFO,path)
1.8 dwinter 128: fh.write(xmlneu)
129: fh.close()
130: return "ok"
131:
1.13 dwinter 132:
1.1 dwinter 133: def manage_AddOSAS_RootForm(self):
134: """interface for adding the OSAS_root"""
1.18 dwinter 135: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_Root.zpt')).__of__(self)
1.1 dwinter 136: return pt()
137:
1.7 dwinter 138: def manage_AddOSAS_Root(self,id,RootFolderName,DigILibURL,uploadServletUrl,RESPONSE=None):
1.1 dwinter 139: """add the OSAS_root"""
1.7 dwinter 140: newObj=OSAS_Root(id,RootFolderName,DigILibURL,uploadServletUrl)
1.1 dwinter 141: self._setObject(id,newObj)
142: if RESPONSE is not None:
143: RESPONSE.redirect('manage_main')
144:
145:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>