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(). """ ## 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 string.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(''' %s
''' % (self.title(), self.bodyTags())) self.writeBanner() self.writeToolbar() def writeBody(self): raise NotImplementedError, 'Should be overridden in a subclass' def writeFooter(self): self.writeln('



') def title(self): raise NotImplementedError, 'Should be overridden in a subclass' def bodyTags(self): return 'color=black bgcolor=white' def writeBanner(self): self.writeln('''
CGI Wrapper
%s

''' % self.title()) def writeToolbar(self): pass