import os, string, sys
class AdminPage:
"""
AdminPage is the abstract superclass of all CGI Wrapper administration CGI classes.
Subclasses typically override title() and writeBody(), but may customize other methods.
Subclasses use self._var for the various vars that are passed in from CGI Wrapper
and self.write() and self.writeln().
"""
def __init__(self, vars):
for name in vars.keys():
setattr(self, '_'+name, vars[name])
self._vars = vars
def html(self):
self._html = []
self.writeHeader()
self.writeBody()
self.writeFooter()
return string.join(self._html, '')
def write(self, *args):
for arg in args:
self._html.append(str(arg))
def writeln(self, *args):
for arg in args:
self._html.append(str(arg))
self._html.append('\n')
def writeHeader(self):
self.writeln('''<html>
<head>
<title>%s</title>
</head>
<body %s><table align=center><tr><td>''' % (self.title(), self.bodyTags()))
self.writeBanner()
self.writeToolbar()
def writeBody(self):
raise NotImplementedError, 'Should be overridden in a subclass'
def writeFooter(self):
self.writeln('<p><br><hr></table></body></html>')
def title(self):
raise NotImplementedError, 'Should be overridden in a subclass'
def bodyTags(self):
return 'color=black bgcolor=white'
def writeBanner(self):
self.writeln('''<table align=center bgcolor=darkblue cellpadding=5 cellspacing=0 width=100%%>
<tr><td align=center>
<font face="Tahoma, Arial, Helvetica" color=white><b>
CGI Wrapper
<br><font size=+2>%s</font>
</b></font>
</td></tr>
</table><p>''' % self.title())
def writeToolbar(self):
pass