# HG changeset patch # User Tero Marttila # Date 1359231496 -7200 # Node ID 8fbaaf0564dc0ea92a159431800c9fa60ce02afb # Parent e6bca452ce72c40d648867a3db6654b366196bd7 pvl.verkko.tables: fixfix diff -r e6bca452ce72 -r 8fbaaf0564dc pvl/verkko/hosts.py --- 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 diff -r e6bca452ce72 -r 8fbaaf0564dc pvl/verkko/table.py --- 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) ) ) )