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>