Annotation of OSA_system2/OSAS_root.py, revision 1.1

1.1     ! dwinter     1: """ OSAS_contains the basic classes for configuring the OSAS and basic objects for displaying data. All site specific adaptation should be made in OSAS_Root"""
        !             2: 
        !             3: from OSAS_helpers import *
        !             4: import OSAS_helpers
        !             5: from OFS.SimpleItem import SimpleItem
        !             6: from time import localtime,strftime
        !             7: from Acquisition import Implicit
        !             8: from OFS.Folder import Folder
        !             9: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
        !            10: from Products.PageTemplates.PageTemplate import PageTemplate
        !            11: import urllib
        !            12: from urlparse import *
        !            13: import re
        !            14: import xml.dom.minidom
        !            15: from types import *
        !            16: import zLOG
        !            17: import os.path
        !            18: from Globals import package_home
        !            19: 
        !            20: 
        !            21: class OSAS_viewerObject(Folder):
        !            22:     """
        !            23:     Grundlegende Klasse fuer Viewer zur Zeit noch in Entwicklung
        !            24: 
        !            25:     """
        !            26:     meta_type="OSAS_ViewerObject__neu"
        !            27:     
        !            28:     def __init__(self,id,title,prefix,objectTypes,ignorePath=""):
        !            29:         """inititialisiere die Klasse
        !            30: 
        !            31:         :Parameters:
        !            32:          - `id` : Zope ID des Objektes
        !            33:          - `title`: Titel des Objektes
        !            34:          - `prefix` : URL bzw. URL Rumpf der Zusammen mit dem Pfad des Objectes die Anzeige URL ergibt
        !            35:          - `objectType` : liste von Objekttypen die mittels dieses Viewers angezeigt werden können.
        !            36:          - `ignorePath` : Pfad der bei dem übergebenen Pfad element ingnoriert werden soll. Optional.
        !            37:         """
        !            38:         self.id=id
        !            39:         self.title=title
        !            40:         self.prefix=prefix
        !            41:         self.objectTypes=toList(objectTypes)
        !            42:         self.ignorePath=ignorePath
        !            43: 
        !            44:     manage_options = Folder.manage_options+(
        !            45:         {'label':'Main Config','action':'changeViewerObjectForm'},
        !            46:         )
        !            47: 
        !            48:     def changeViewerObjectForm(self):
        !            49:         """Main configuration"""
        !            50:         pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeViewerObjectForm.zpt')).__of__(self)
        !            51:         return pt()
        !            52: 
        !            53:     def changeViewerObject(self,title,prefix,objectTypes,ignorePath=None,RESPONSE=None):
        !            54:         """Change RootFolderName"""
        !            55:         self.title=title
        !            56:         self.prefix=prefix
        !            57:         self.ignorePath=ignorePath
        !            58:         self.objectTypes=toList(objectTypes)
        !            59:         
        !            60:         if RESPONSE is not None:
        !            61:             RESPONSE.redirect('manage_main')
        !            62: 
        !            63: 
        !            64: def manage_addViewerObjectForm(self):
        !            65:     """form for adding a viewer Object"""
        !            66:     pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','addViewerObjectForm.zpt')).__of__(self)
        !            67:     return pt()
        !            68: 
        !            69: def manage_addViewerObject(self,id,title,prefix,objectTypes,ignorePath,RESPONSE=None):
        !            70:     """add the OSAS_root"""
        !            71:     newObj=OSAS_viewerObject(id,title,prefix,objectTypes,ignorePath)
        !            72:     self._setObject(id,newObj)
        !            73:     
        !            74:     if RESPONSE is not None:
        !            75:         RESPONSE.redirect('manage_main')
        !            76: 
        !            77:     
        !            78: class OSAS_root(Folder,Implicit):
        !            79:     """Implicit Folder of the  Storage Systems"""
        !            80:     def __init__(self,id,rootFolderName,uploadServletUrl=None):
        !            81:         """initialize a new instance
        !            82: 
        !            83: 
        !            84:         @param id: Zope ID des Objektes
        !            85:         @param rootFolderName : path zum root folder des Storagesystems
        !            86:         @param uploadServerletUrl : url des UploadServlets (required fuer batch upload)
        !            87: 
        !            88:         """
        !            89:         
        !            90:         self.id = id
        !            91:         self.rootFolderName = rootFolderName
        !            92:         self.uploadServletUrl=uploadServletUrl
        !            93:         
        !            94:     meta_type="OSAS_Root__neu"
        !            95: 
        !            96:     manage_options = Folder.manage_options+(
        !            97:         {'label':'Main Config','action':'changeRootForm'},
        !            98:         )
        !            99: 
        !           100: 
        !           101:     OSASObjectTypes=OSAS_helpers.OSASObjectTypes
        !           102:     
        !           103:     def changeRootForm(self):
        !           104:         """Main configuration"""
        !           105:         pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt','changeRootForm.zpt')).__of__(self)
        !           106:         
        !           107:         return pt()
        !           108: 
        !           109:     def changeRoot(self,rootFolderName,uploadServletUrl,RESPONSE=None):
        !           110:         """Change RootFolderName"""
        !           111:         self.rootFolderName=rootFolderName
        !           112: 
        !           113:         self.uploadServletUrl=uploadServletUrl
        !           114:         
        !           115:         if RESPONSE is not None:
        !           116:             RESPONSE.redirect('manage_main')
        !           117: 
        !           118:     localDate=localDate
        !           119:     
        !           120:     def getUploadServletUrl(self):
        !           121:         """gibt  url des servlets zurueck"""
        !           122:         return self.uploadServletUrl
        !           123:         
        !           124: 
        !           125:     def downloadExternalXML(self,index_meta_url,xml_url):
        !           126:         """lade lese ein xml file aus URL und schreibe es in den localen Filebaum
        !           127:         
        !           128:         @param index_meta_url: url eines index.meta files auf dem lokalen Server, es gilt rootFolderName + pfad teil der url = pfad auf dem Server. 
        !           129:         @param xml_url: externe url file hier ersetzt obiges index.meta
        !           130:         @return: 'error' als String bei Fehler 'ok' bei ok.
        !           131:         """
        !           132:         
        !           133: 
        !           134:         xmlneu=urllib.urlopen(xml_url).read()
        !           135:         
        !           136:         try:
        !           137:             dom=xml.dom.minidom.parseString(xmlneu)
        !           138:         except:
        !           139: 
        !           140:             zLOG.LOG('OSAS_Root (downloadExternalXML)',zLOG.ERROR,'cannot parse: %s', xml_url)
        !           141:             return "error"
        !           142: 
        !           143: 
        !           144:         path=self.rootFolderName+urlparse(index_meta_url)[2]
        !           145: 
        !           146:         fh=open(path,'w')
        !           147: 
        !           148:         fh.write(xmlneu)
        !           149:         fh.close()
        !           150:         return "ok"
        !           151: 
        !           152:         
        !           153: def manage_addOSAS_rootForm(self):
        !           154:     """interface for adding the OSAS_root"""
        !           155:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addOSAS_rootForm.zpt')).__of__(self)
        !           156:     return pt()
        !           157: 
        !           158: def manage_addOSAS_root(self,id,RootFolderName,uploadServletUrl,RESPONSE=None):
        !           159:     """add the OSAS_root"""
        !           160:     newObj=OSAS_root(id,RootFolderName,uploadServletUrl)
        !           161:     self._setObject(id,newObj)
        !           162:     if RESPONSE is not None:
        !           163:         RESPONSE.redirect('manage_main')
        !           164: 
        !           165:     

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>