From dd582c61e9eeae4fc5abaf24e863fa17de65f894 Mon Sep 17 00:00:00 2001 From: niphlod Date: Mon, 12 Aug 2013 23:59:03 +0200 Subject: [PATCH] added enhancement 1626, marker shown in grid also for default orderby --- gluon/sqlhtml.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 7c9d0afa..faccbabb 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -13,12 +13,7 @@ Holds: - form_factory: provides a SQLFORM for an non-db backed table """ -try: - from urlparse import parse_qs as psq -except ImportError: - from cgi import parse_qs as psq import os -import copy from http import HTTP from html import XmlComponent from html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG, SCRIPT @@ -2193,18 +2188,32 @@ class SQLFORM(FORM): headcols = [] if selectable: headcols.append(TH(_class=ui.get('default'))) + + ordermatch, marker = orderby, '' + if orderby: + #if orderby is a single column, remember to put the marker + if isinstance(orderby, Expression): + if orderby.first and not orderby.second: + ordermatch, marker = orderby.first, '~' + ordermatch = marker + str(ordermatch) for field in columns: if not field.readable: continue key = str(field) header = headers.get(str(field), field.label or key) if sortable and not isinstance(field, Field.Virtual): - if key == order: - key, marker = '~' + order, sorter_icons[0] - elif key == order[1:]: - marker = sorter_icons[1] + marker = '' + if order: + if key == order: + key, marker = '~' + order, sorter_icons[0] + elif key == order[1:]: + marker = sorter_icons[1] else: - marker = '' + print 'a', key, ordermatch + if key == ordermatch: + key, marker = '~' + order, sorter_icons[0] + elif key == ordermatch[1:]: + marker = sorter_icons[1] header = A(header, marker, _href=url(vars=dict( keywords=request.vars.keywords or '', order=key)), _class=trap_class())