File:  [Repository] / ZSQLExtend / ZSQLUpdate.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Sun Jan 23 15:22:04 2005 UTC (19 years, 5 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
minor

    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>