class AdminPage:
"""AdminPage
This 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().
"""
## Init ##
def __init__(self, vars):
for name in vars.keys():
setattr(self, '_' + name, vars[name])
self._vars = vars
## HTML ##
def html(self):
self._html = []
self.writeHeader()
self.writeBody()
self.writeFooter()
return ''.join(self._html)
## Utility methods ##
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')
## Content methods ##
def writeHeader(self):
self.writeln('''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>%s</title>
</head>
<body %s>
<table align="center" bgcolor="white"><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('''
<hr>
<div align="center" style="font-size:small">Webware for Python</div>
</td></tr></table>
</body>
</html>''')
def title(self):
raise NotImplementedError, 'Should be overridden in a subclass'
def bodyTags(self):
return 'text="black" bgcolor="#555555"'
def writeBanner(self):
self.writeln('''
<table align="center" bgcolor="#202080" cellpadding="5" cellspacing="0" width="100%%">
<tr><td align="center" style="color:white;font-weight:bold;font-family:Tahoma,Verdana,Arial,Helvetica,sans-serif">
<div style="font-size:14pt">CGI Wrapper</div>
<div style="font-size:16pt">%s</div>
</td></tr>
</table>''' % self.title())
def writeToolbar(self):
pass
|