Work for DisplayHTMLBlockTableWithGraph class
This commit is contained in:
parent
2846394dad
commit
63a9b40b46
|
@ -31,6 +31,5 @@ multimedia_files = ['png', 'jpg', 'jpeg', 'gif', 'ico',
|
||||||
'css', 'js']
|
'css', 'js']
|
||||||
|
|
||||||
resources_path = ['resources']
|
resources_path = ['resources']
|
||||||
css_path = [os.path.join( '/',
|
icon_path = ['/%s/%s' % (os.path.basename(resources_path[0]), 'icon')]
|
||||||
os.path.basename(resources_path[0]),
|
css_path = ['/%s/%s/%s' % (os.path.basename(resources_path[0]), 'css', 'iwla.css')]
|
||||||
os.path.join('css', 'iwla.css'))]
|
|
||||||
|
|
71
display.py
71
display.py
|
@ -138,20 +138,85 @@ class DisplayHTMLBlockTable(DisplayHTMLBlock):
|
||||||
html += '</tr>'
|
html += '</tr>'
|
||||||
html += '</table>'
|
html += '</table>'
|
||||||
|
|
||||||
self.html = html
|
self.html += html
|
||||||
|
|
||||||
super(DisplayHTMLBlockTable, self)._buildHTML()
|
super(DisplayHTMLBlockTable, self)._buildHTML()
|
||||||
|
|
||||||
class DisplayHTMLBlockTableWithGraph(DisplayHTMLBlockTable):
|
class DisplayHTMLBlockTableWithGraph(DisplayHTMLBlockTable):
|
||||||
|
|
||||||
def __init__(self, title, cols, short_title, nb_valid_rows=0):
|
def __init__(self, title, cols, short_titles=[], nb_valid_rows=0):
|
||||||
super(DisplayHTMLBlockTableWithGraph, self).__init__(title=title, cols=cols)
|
super(DisplayHTMLBlockTableWithGraph, self).__init__(title=title, cols=cols)
|
||||||
self.short_title = short_title
|
self.short_titles = short_titles
|
||||||
self.nb_valid_rows = nb_valid_rows
|
self.nb_valid_rows = nb_valid_rows
|
||||||
|
# TOFIX
|
||||||
|
self.icon_path = '/resources/icon'
|
||||||
|
# self.icon_path = self.iwla.getConfValue('icon_path', '/')
|
||||||
|
self.raw_rows = []
|
||||||
|
self.maxes = [0 for c in cols]
|
||||||
|
|
||||||
|
def appendRow(self, row):
|
||||||
|
self.raw_rows.append(row)
|
||||||
|
super(DisplayHTMLBlockTableWithGraph, self).appendRow(row)
|
||||||
|
|
||||||
|
def appendShortTitle(self, short_title):
|
||||||
|
self.short_titles.append(short_title)
|
||||||
|
|
||||||
|
def setShortTitle(self, short_titles):
|
||||||
|
self.short_titles = short_titles
|
||||||
|
|
||||||
def setNbValidRows(self, nb_valid_rows):
|
def setNbValidRows(self, nb_valid_rows):
|
||||||
self.nb_valid_rows = nb_valid_rows
|
self.nb_valid_rows = nb_valid_rows
|
||||||
|
|
||||||
|
def _computeMax(self):
|
||||||
|
for i in range(0, self.nb_valid_rows):
|
||||||
|
row = self.raw_rows[i]
|
||||||
|
for j in range(1, len(row)):
|
||||||
|
if row[j] > self.maxes[j]:
|
||||||
|
self.maxes[j] = row[j]
|
||||||
|
|
||||||
|
def _getIconFromStyle(self, style):
|
||||||
|
if style.startswith('iwla_page'): icon = 'vp.png'
|
||||||
|
elif style.startswith('iwla_hit'): icon = 'vh.png'
|
||||||
|
elif style.startswith('iwla_bandwidth'): icon = 'vk.png'
|
||||||
|
elif style.startswith('iwla_visit'): icon = 'vv.png'
|
||||||
|
elif style.startswith('iwla_search'): icon = 'vu.png'
|
||||||
|
else: return ''
|
||||||
|
|
||||||
|
return '%s/%s' % (self.icon_path, icon)
|
||||||
|
|
||||||
|
def _buildHTML(self):
|
||||||
|
self._computeMax()
|
||||||
|
|
||||||
|
html = '<table>'
|
||||||
|
html += '<tr>'
|
||||||
|
for i in range(0, self.nb_valid_rows):
|
||||||
|
row = self.rows[i]
|
||||||
|
html += '<td>'
|
||||||
|
for j in range(1, len(row)):
|
||||||
|
style = self.getColCSSClass(j)
|
||||||
|
icon = self._getIconFromStyle(style)
|
||||||
|
if not icon: continue
|
||||||
|
if style: style = ' class="%s"' % (style)
|
||||||
|
alt = '%s: %s' % (row[j], self.cols[j])
|
||||||
|
if self.maxes[j]:
|
||||||
|
height = int((self.raw_rows[i][j] * 100) / self.maxes[j])
|
||||||
|
else:
|
||||||
|
height = 0
|
||||||
|
html += '<img%s align="bottom" src="%s" height="%d" width="6" alt="%s" title="%s" />' % (style, icon, height, alt, alt)
|
||||||
|
html += '</td>'
|
||||||
|
html += '</tr>'
|
||||||
|
html += '<tr>'
|
||||||
|
for i in range(0, len(self.short_titles)):
|
||||||
|
style = self.getCellCSSClass(0, j)
|
||||||
|
if style: style = ' class="%s"' % (style)
|
||||||
|
html += '<td%s>%s</td>' % (style, self.short_titles[i])
|
||||||
|
html += '</tr>'
|
||||||
|
html += '</table>'
|
||||||
|
|
||||||
|
self.html += html
|
||||||
|
|
||||||
|
super(DisplayHTMLBlockTableWithGraph, self)._buildHTML()
|
||||||
|
|
||||||
class DisplayHTMLPage(object):
|
class DisplayHTMLPage(object):
|
||||||
|
|
||||||
def __init__(self, title, filename, css_path):
|
def __init__(self, title, filename, css_path):
|
||||||
|
|
11
iwla.py
11
iwla.py
|
@ -240,21 +240,24 @@ class IWLA(object):
|
||||||
print '==> Generate display (%s)' % (filename)
|
print '==> Generate display (%s)' % (filename)
|
||||||
page = DisplayHTMLPage(title, filename, conf.css_path)
|
page = DisplayHTMLPage(title, filename, conf.css_path)
|
||||||
|
|
||||||
days = DisplayHTMLBlockTable('By day', ['Day', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth'])
|
_, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon)
|
||||||
|
days = DisplayHTMLBlockTableWithGraph('By day', ['Day', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth'], nb_valid_rows=nb_month_days)
|
||||||
days.setColsCSSClass(['', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth'])
|
days.setColsCSSClass(['', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth'])
|
||||||
nb_visits = 0
|
nb_visits = 0
|
||||||
nb_days = 0
|
nb_days = 0
|
||||||
_, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon)
|
|
||||||
for i in range(0, nb_month_days+1):
|
for i in range(0, nb_month_days+1):
|
||||||
if i in self.current_analysis['days_stats'].keys():
|
if i in self.current_analysis['days_stats'].keys():
|
||||||
stats = self.current_analysis['days_stats'][i]
|
stats = self.current_analysis['days_stats'][i]
|
||||||
row = [i, stats['nb_visitors'], stats['viewed_pages'], stats['viewed_hits'],
|
row = [i, stats['nb_visitors'], stats['viewed_pages'], stats['viewed_hits'],
|
||||||
bytesToStr(stats['viewed_bandwidth']), bytesToStr(stats['not_viewed_bandwidth'])]
|
stats['viewed_bandwidth'], stats['not_viewed_bandwidth']]
|
||||||
nb_visits += stats['nb_visitors']
|
nb_visits += stats['nb_visitors']
|
||||||
nb_days += 1
|
nb_days += 1
|
||||||
else:
|
else:
|
||||||
row = [i, '', '', '', '', '']
|
row = [i, 0, 0, 0, 0, 0]
|
||||||
days.appendRow(row)
|
days.appendRow(row)
|
||||||
|
days.setCellValue(i, 4, bytesToStr(row[4]))
|
||||||
|
days.setCellValue(i, 5, bytesToStr(row[5]))
|
||||||
|
days.appendShortTitle(str(i))
|
||||||
|
|
||||||
stats = self.current_analysis['month_stats']
|
stats = self.current_analysis['month_stats']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user