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']
|
||||
|
||||
resources_path = ['resources']
|
||||
css_path = [os.path.join( '/',
|
||||
os.path.basename(resources_path[0]),
|
||||
os.path.join('css', 'iwla.css'))]
|
||||
icon_path = ['/%s/%s' % (os.path.basename(resources_path[0]), 'icon')]
|
||||
css_path = ['/%s/%s/%s' % (os.path.basename(resources_path[0]), 'css', 'iwla.css')]
|
||||
|
|
71
display.py
71
display.py
|
@ -138,20 +138,85 @@ class DisplayHTMLBlockTable(DisplayHTMLBlock):
|
|||
html += '</tr>'
|
||||
html += '</table>'
|
||||
|
||||
self.html = html
|
||||
self.html += html
|
||||
|
||||
super(DisplayHTMLBlockTable, self)._buildHTML()
|
||||
|
||||
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)
|
||||
self.short_title = short_title
|
||||
self.short_titles = short_titles
|
||||
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):
|
||||
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):
|
||||
|
||||
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)
|
||||
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'])
|
||||
nb_visits = 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):
|
||||
if i in self.current_analysis['days_stats'].keys():
|
||||
stats = self.current_analysis['days_stats'][i]
|
||||
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_days += 1
|
||||
else:
|
||||
row = [i, '', '', '', '', '']
|
||||
row = [i, 0, 0, 0, 0, 0]
|
||||
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']
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user