--- a/pvl/verkko/hosts.py Wed Oct 24 21:28:32 2012 +0300
+++ b/pvl/verkko/hosts.py Wed Oct 24 22:11:36 2012 +0300
@@ -153,9 +153,24 @@
sort = self.request.args.get('sort')
if sort :
- order_by = self.HOST_ATTRS[sort]
+ name = sort.lstrip('+-')
+ else :
+ name = None
+
+ if name :
+ order_by = self.HOST_ATTRS[name]
else :
order_by = default
+
+ # prefix
+ if not sort :
+ pass
+ elif sort.startswith('+') :
+ order_by = order_by.asc()
+ elif sort.startswith('-') :
+ order_by = order_by.desc()
+ else :
+ pass
log.debug("sort: %s", order_by)
@@ -273,6 +288,18 @@
return self.url(**args)
+ def sortlink (attr) :
+ if not self.sorts :
+ sort = attr
+ elif self.sorts.lstrip('+-') != attr :
+ sort = attr
+ elif self.sorts.startswith('-') :
+ sort = "+" + attr
+ else :
+ sort = "-" + attr
+
+ return html.a(href=url(sort=sort))
+
def paginate (page, count=None) :
"""
Render pagination.
@@ -326,7 +353,7 @@
html.th('#'),
(
html.th(
- html.a(href=url(sort=sort))(title) if sort else (title)
+ sortlink(sort)(title) if sort else (title)
) for title, sort, filter, class_ in COLS
)
),