Annotation of OSA_system2/OSAS_root.py, revision 1.1.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>