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>