--- a/pvl/verkko/hosts.py Sat Jan 26 21:06:00 2013 +0200
+++ b/pvl/verkko/hosts.py Sat Jan 26 22:18:16 2013 +0200
@@ -6,7 +6,6 @@
import re
import datetime
import socket # dns
-import math
import logging; log = logging.getLogger('pvl.verkko.hosts')
@@ -148,6 +147,7 @@
Table of hosts.
"""
+ ITEMS = "Hosts"
COLUMNS = (
table.Column('ip', "IP", Host.ip,
rowfilter = True,
@@ -167,9 +167,6 @@
# XXX: have to set again
ATTRS = dict((col.attr, col) for col in COLUMNS)
- # XXX: set later
- TABLE_URL = ITEM_URL = None
-
# default
SORT = Host.last_seen.desc()
PAGE = 10
--- a/pvl/verkko/table.py Sat Jan 26 21:06:00 2013 +0200
+++ b/pvl/verkko/table.py Sat Jan 26 22:18:16 2013 +0200
@@ -1,6 +1,8 @@
from pvl.web import html
from pvl.verkko import web, db
+import math
+
import logging; log = logging.getLogger('pvl.verkko.table')
class Column (object) :
@@ -133,6 +135,7 @@
"""
COLUMNS = ()
+ ITEMS = None
# attr -> column
ATTRS = dict((col.attr, col) for col in COLUMNS)
@@ -266,7 +269,7 @@
self.render_row(item, **opts)
)
- def render_pagination (self, page, count=None) :
+ def render_pagination (self, page, count=None, **opts) :
"""
Render pagination links.
"""
@@ -277,14 +280,17 @@
pages = None
if page > 0 :
- yield html.a(href=self.tableurl(page=0))(html("«« First"))
- yield html.a(href=self.tableurl(page=(page - 1)))(html("« Prev"))
+ yield html.a(href=self.tableurl(page=0, **opts))(html("«« First"))
+ yield html.a(href=self.tableurl(page=(page - 1), **opts))(html("« Prev"))
- yield html.span("Page {page} of {pages}".format(page=(page + 1), pages=(pages or '???')))
+ if pages :
+ yield html.span("Page {page} of {pages}".format(page=(page + 1), pages=pages))
+ else :
+ yield html.span("Page {page}".format(page=(page + 1)))
- yield html.a(href=self.tableurl(page=(page + 1)))(html("» Next"))
+ yield html.a(href=self.tableurl(page=(page + 1), **opts))(html("» Next"))
- def render_foot (self, query, page) :
+ def render_foot (self, query, page, **opts) :
"""
Render pagination/host count in footer.
"""
@@ -292,10 +298,11 @@
# XXX: does separate SELECT count()
count = query.count()
- if page :
- return self.render_pagination(page, count)
+ if page is None :
+ return "{count} {items}".format(count=count, items=self.ITEMS)
else :
- return "{count} hosts".format(count=count)
+ # XXX: count is just the count we got..
+ return self.render_pagination(page, count=None, **opts)
def render (self, query, filters=None, sort=None, page=None, hilight=None) :
"""
@@ -326,7 +333,7 @@
html.tfoot(
html.tr(
html.td(colspan=(1 + len(self.columns)))(
- self.render_foot(query, page)
+ self.render_foot(query, page, filters=filters, sort=sort)
)
)
)