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