Annotation of ZSQLExtend/ZSQLUpdate.py, revision 1.1

1.1     ! dwinter     1: from OFS.Folder import Folder
        !             2: from Globals import DTMLFile,package_home
        !             3: from tempfile import NamedTemporaryFile
        !             4: from AccessControl import getSecurityManager
        !             5: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
        !             6: import urllib
        !             7: import os.path
        !             8: import zLOG
        !             9: 
        !            10: 
        !            11: 
        !            12: """Webfrontend fuer das Update der Datenbanken ueber das Web mithilfe von
        !            13: fm.jar
        !            14: """
        !            15: 
        !            16: class ZSQLUpdate(Folder):
        !            17:     """Klasse zum update, in den Folder werden die verschiedenen Update XML files hineingelegt"""
        !            18:     meta_type="ZSQLUpdate"
        !            19: 
        !            20:     def update(self,xmlurl=None,xmlobject=None):
        !            21:         """update by calling fm.jar and using the xmlfile at xmlurl
        !            22:         @param xmlurl: url auf ein xml file fuer fm.jar
        !            23:         """
        !            24: 
        !            25: 
        !            26:         
        !            27:         tmpFile=NamedTemporaryFile()
        !            28: 
        !            29:         if xmlurl:
        !            30:             xmlf=urllib.urlopen(xmlurl).read()
        !            31:         if xmlobject:
        !            32:             try:
        !            33:                 xmlf=getattr(self,xmlobject)()
        !            34:             except:
        !            35:                 xmlf=getattr(self,xmlobject).data
        !            36:         
        !            37:         tmpFile.write(xmlf)
        !            38:         path=tmpFile.name
        !            39: 
        !            40:         fmJarPath=os.path.join(package_home(globals()), 'fm.jar')
        !            41: 
        !            42:         zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path))
        !            43:         ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path),"r").read()
        !            44:    zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret)
        !            45: 
        !            46:         tmpFile.close()
        !            47:         return "<html><body><h1>SQL update</h1><p>(notice, everything worked fine if only <q>java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver</q> comes out as result)</p><p>Result:<br>%s</p></html></body>"%ret
        !            48: 
        !            49:     def findUpdater(self):
        !            50:         """find Update, giebt alle Update files als Tupel (id,objekte) zuruck"""
        !            51:         return self.ZopeFind(self,obj_metatypes=['File','Page Template'])
        !            52:     def index_html(self):
        !            53:         """standard ansicht"""
        !            54:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/viewUpdates.zpt')).__of__(self)
        !            55:         return pt()
        !            56: 
        !            57: manage_addZSQLUpdateForm=DTMLFile('ZSQLUpdateAdd', globals())
        !            58: 
        !            59: def manage_addZSQLUpdate(self, id, title='', label='', description='',
        !            60:                      createPublic=0,
        !            61:                      createUserF=0,
        !            62:                      connection_id=None,
        !            63:                      REQUEST=None):
        !            64:     """Add a new Folder object with id *id*.
        !            65: 
        !            66:     If the 'createPublic' and 'createUserF' parameters are set to any true
        !            67:     value, an 'index_html' and a 'UserFolder' objects are created respectively
        !            68:     in the new folder.
        !            69:     """
        !            70:     
        !            71:     
        !            72:     ob=ZSQLUpdate()
        !            73:     ob.id=str(id)
        !            74:     ob.title=title
        !            75:     self._setObject(id, ob)
        !            76:     ob=self._getOb(id)
        !            77:     setattr(ob,'label',label)
        !            78: 
        !            79:     
        !            80:     checkPermission=getSecurityManager().checkPermission
        !            81: 
        !            82: 
        !            83:     if REQUEST is not None:
        !            84:         return self.manage_main(self, REQUEST, update_menu=1)
        !            85: 
        !            86: 

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