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>