2014-11-21 10:41:29 +01:00
|
|
|
|
2014-11-21 16:56:58 +01:00
|
|
|
class DisplayHTMLBlock(object):
|
|
|
|
|
|
|
|
def __init__(self, title):
|
|
|
|
self.title = title
|
|
|
|
|
|
|
|
def build(self, f):
|
|
|
|
pass
|
|
|
|
|
|
|
|
class DisplayHTMLBlockTable(DisplayHTMLBlock):
|
|
|
|
|
|
|
|
def __init__(self, title, cols):
|
|
|
|
super(DisplayHTMLBlockTable, self).__init__(title)
|
|
|
|
self.cols = cols
|
|
|
|
self.rows = []
|
|
|
|
|
|
|
|
def appendRow(self, row):
|
|
|
|
self.rows.append(row)
|
|
|
|
|
|
|
|
def build(self, f):
|
|
|
|
f.write('<table>')
|
2014-11-21 10:41:29 +01:00
|
|
|
f.write('<tr>')
|
2014-11-21 16:56:58 +01:00
|
|
|
for title in self.cols:
|
|
|
|
f.write('<th>%s</th>' % (title))
|
2014-11-21 10:41:29 +01:00
|
|
|
f.write('</tr>')
|
2014-11-21 16:56:58 +01:00
|
|
|
for row in self.rows:
|
|
|
|
f.write('<tr>')
|
|
|
|
for v in row:
|
|
|
|
f.write('<td>%s</td>' % (v))
|
|
|
|
f.write('</tr>')
|
|
|
|
f.write('</table>')
|
|
|
|
|
|
|
|
class DisplayHTMLPage(object):
|
|
|
|
|
|
|
|
def __init__(self, title, filename):
|
|
|
|
self.title = title
|
|
|
|
self.filename = filename
|
|
|
|
self.blocks = []
|
|
|
|
|
|
|
|
def getFilename(self):
|
|
|
|
return self.filename;
|
|
|
|
|
|
|
|
def appendBlock(self, block):
|
|
|
|
self.blocks.append(block)
|
|
|
|
|
|
|
|
def build(self, root):
|
|
|
|
f = open(root + self.filename, 'w')
|
|
|
|
f.write('<html><title>%s</title><body>' % (self.title))
|
|
|
|
for block in self.blocks:
|
|
|
|
block.build(f)
|
|
|
|
f.write('</body></html>')
|
|
|
|
f.close()
|
|
|
|
|
|
|
|
class DisplayHTMLBuild(object):
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
self.pages = []
|
|
|
|
|
|
|
|
def getPage(self, filename):
|
|
|
|
for page in self.pages:
|
|
|
|
if page.getFilename() == filename:
|
|
|
|
return page
|
|
|
|
return None
|
|
|
|
|
|
|
|
def addPage(self, page):
|
|
|
|
self.pages.append(page)
|
|
|
|
|
|
|
|
def build(self, root):
|
|
|
|
for page in self.pages:
|
|
|
|
page.build(root)
|