added enhancement 1626, marker shown in grid also for default orderby

This commit is contained in:
niphlod
2013-08-12 23:59:03 +02:00
parent 8fbab4d505
commit dd582c61e9
+19 -10
View File
@@ -13,12 +13,7 @@ Holds:
- form_factory: provides a SQLFORM for an non-db backed table - 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 os
import copy
from http import HTTP from http import HTTP
from html import XmlComponent from html import XmlComponent
from html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG, SCRIPT from html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG, SCRIPT
@@ -2193,18 +2188,32 @@ class SQLFORM(FORM):
headcols = [] headcols = []
if selectable: if selectable:
headcols.append(TH(_class=ui.get('default'))) 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: for field in columns:
if not field.readable: if not field.readable:
continue continue
key = str(field) key = str(field)
header = headers.get(str(field), field.label or key) header = headers.get(str(field), field.label or key)
if sortable and not isinstance(field, Field.Virtual): if sortable and not isinstance(field, Field.Virtual):
if key == order: marker = ''
key, marker = '~' + order, sorter_icons[0] if order:
elif key == order[1:]: if key == order:
marker = sorter_icons[1] key, marker = '~' + order, sorter_icons[0]
elif key == order[1:]:
marker = sorter_icons[1]
else: 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( header = A(header, marker, _href=url(vars=dict(
keywords=request.vars.keywords or '', keywords=request.vars.keywords or '',
order=key)), _class=trap_class()) order=key)), _class=trap_class())