from OFS.SimpleItem import SimpleItem from time import localtime,strftime from Acquisition import Implicit from OFS.Folder import Folder from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate import urllib import re class OSAS_ViewerObject(Folder): """Beschreibung eines Viewers""" meta_type="OSAS_ViewerObject" def __init__(self,id,title,prefix): """init""" self.id=id self.title=title self.prefix=prefix manage_options = Folder.manage_options+( {'label':'Main Config','action':'changeViewerObjectForm'}, ) def changeViewerObjectForm(self): """Main configuration""" pt=PageTemplateFile('Products/OSA_system/zpt/changeViewerObjectForm.zpt').__of__(self) return pt() def changeViewerObject(self,title,prefix): """Change RootFolderName""" self.title=title self.prefix=prefix if RESPONSE is not None: RESPONSE.redirect('manage_main') def manage_AddOSAS_ViewerObjectForm(self): """interface for adding the viewer Object""" pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_ViewerObject.zpt').__of__(self) return pt() def manage_AddOSAS_ViewerObject(self,id,title,prefix,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_ViewerObject(id,title,prefix) self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') class OSAS_Root(Folder,Implicit): """Implicit Folder of the Storage Systems""" def __init__(self,id,RootFolderName,DigILibURL,uploadServletUrl): """initialize a new instance""" self.id = id self.RootFolderName = RootFolderName self.DigILibURL=DigILibURL self.uploadServletUrl=uploadServletUrl meta_type="OSAS_Root" manage_options = Folder.manage_options+( {'label':'Main Config','action':'Root_config'}, ) def getImageViewers(self): """images""" viewers=self.ZopeFind(self.standardImageViewer,obj_metatypes=['OSAS_ViewerObject']) return viewers def setDigILibURL(self): """set""" self.DigILibURL="" def Root_config(self): """Main configuration""" pt=PageTemplateFile('Products/OSA_system/zpt/ConfigOSAS_Root.zpt').__of__(self) return pt() def change_OSAS_Root(self,RootFolderName,DigILibURL,uploadServletUrl,RESPONSE=None): """Change RootFolderName""" self.RootFolderName=RootFolderName self.DigILibURL=DigILibURL self.uploadServletUrl=uploadServletUrl if RESPONSE is not None: RESPONSE.redirect('manage_main') def date(self): """gives formatted date""" return strftime("%d.%m.%Y",localtime()) def getUploadServletUrl(self): """get url""" try: self.uploadServletUrl=uploadServletUrl except: return "http://foxridge.rz-berlin.mpg.de:8000/upload/up" def downloadExternalXML(self,index_meta_url,xml_url): """lade xml file""" xmlneu=urllib.urlopen(xml_url).read() path=re.sub(self.REQUEST['SERVER_URL'],'',index_meta_url) path=re.sub('http://'+self.REQUEST['HTTP_HOST'],'',index_meta_url) path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server fh=open(path,'w') fh.write(xmlneu) fh.close() return "ok" def manage_AddOSAS_RootForm(self): """interface for adding the OSAS_root""" pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_Root.zpt').__of__(self) return pt() def manage_AddOSAS_Root(self,id,RootFolderName,DigILibURL,uploadServletUrl,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_Root(id,RootFolderName,DigILibURL,uploadServletUrl) self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')