diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 2d4912fb..a248a761 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -48,6 +48,8 @@ except ImportError: widget_class = re.compile('^\w*') +REGEX_ALIAS_MATCH = re.compile('^(.*) AS (.*)$') + def add_class(a, b): return a + ' ' + b if a else b @@ -3006,7 +3008,7 @@ class SQLTABLE(TABLE): upload: URL to download uploaded files orderby: Add an orderby link to column headers. headers: dictionary of headers to headers redefinions - headers can also be a string to gerenare the headers from data + headers can also be a string to generate the headers from data for now only headers="fieldname:capitalize", headers="labels" and headers=None are supported truncate: length at which to truncate text in table cells. @@ -3070,7 +3072,7 @@ class SQLTABLE(TABLE): (t, f) = REGEX_TABLE_DOT_FIELD.match(c).groups() headers[t + '.' + f] = f.replace('_', ' ').title() else: - headers[c] = c + headers[c] = REGEX_ALIAS_MATCH.sub(r'\2', c) elif headers == 'labels': headers = {} for c in columns: @@ -3102,7 +3104,7 @@ class SQLTABLE(TABLE): row.append(TH(A(headers.get(c, c), _href=th_link + '?orderby=' + c, cid=cid))) else: - row.append(TH(headers.get(c, c))) + row.append(TH(headers.get(c, REGEX_ALIAS_MATCH.sub(r'\2', c)))) if extracolumns: # new implement dict for c in extracolumns: