fixed issue 1584 (grid export with left join)

This commit is contained in:
niphlod
2013-08-30 21:13:49 +02:00
parent 70a1fbfd41
commit a7d4c5297e
+8 -8
View File
@@ -2073,14 +2073,13 @@ class SQLFORM(FORM):
order = request.vars.order or '' order = request.vars.order or ''
if sortable: if sortable:
if order and not order == 'None': if order and not order == 'None':
if order[:1] == '~': otablename, ofieldname = order.split('~')[-1].split('.', 1)
sign, rorder = '~', order[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: else:
sign, rorder = '', order orderby = (order[:1] == '~' and ~sort_field) or sort_field
tablename, fieldname = rorder.split('.', 1)
orderby = db[tablename][fieldname]
if sign == '~':
orderby = ~orderby
expcolumns = [str(f) for f in columns] expcolumns = [str(f) for f in columns]
if export_type.endswith('with_hidden_cols'): if export_type.endswith('with_hidden_cols'):
@@ -2095,7 +2094,8 @@ class SQLFORM(FORM):
try: try:
dbset = dbset(SQLFORM.build_query( dbset = dbset(SQLFORM.build_query(
fields, request.vars.get('keywords', ''))) fields, request.vars.get('keywords', '')))
rows = dbset.select(cacheable=True, *expcolumns) rows = dbset.select(left=left, orderby=orderby,
cacheable=True, *expcolumns)
except Exception, e: except Exception, e:
response.flash = T('Internal Error') response.flash = T('Internal Error')
rows = [] rows = []