From a7d4c5297e3879fd7495c311dc66f35b13dee1c1 Mon Sep 17 00:00:00 2001 From: niphlod Date: Fri, 30 Aug 2013 21:13:49 +0200 Subject: [PATCH] fixed issue 1584 (grid export with left join) --- gluon/sqlhtml.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index e3399ac4..48171c9d 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -2073,14 +2073,13 @@ class SQLFORM(FORM): order = request.vars.order or '' if sortable: if order and not order == 'None': - if order[:1] == '~': - sign, rorder = '~', order[1:] + otablename, ofieldname = order.split('~')[-1].split('.', 1) + sort_field = db[otablename][ofieldname] + exception = sort_field.type in ('date', 'datetime', 'time') + if exception: + orderby = (order[:1] == '~' and sort_field) or ~sort_field else: - sign, rorder = '', order - tablename, fieldname = rorder.split('.', 1) - orderby = db[tablename][fieldname] - if sign == '~': - orderby = ~orderby + orderby = (order[:1] == '~' and ~sort_field) or sort_field expcolumns = [str(f) for f in columns] if export_type.endswith('with_hidden_cols'): @@ -2095,7 +2094,8 @@ class SQLFORM(FORM): try: dbset = dbset(SQLFORM.build_query( fields, request.vars.get('keywords', ''))) - rows = dbset.select(cacheable=True, *expcolumns) + rows = dbset.select(left=left, orderby=orderby, + cacheable=True, *expcolumns) except Exception, e: response.flash = T('Internal Error') rows = []