SQLFORM.grid(showblobs=True)

This commit is contained in:
mdipierro
2017-03-20 16:15:18 -05:00
parent 215abc9e4f
commit 975ab7b923
+6 -6
View File
@@ -2153,7 +2153,8 @@ class SQLFORM(FORM):
ignore_common_filters=None, ignore_common_filters=None,
auto_pagination=True, auto_pagination=True,
use_cursor=False, use_cursor=False,
represent_none=None): represent_none=None,
showblobs=False):
formstyle = formstyle or current.response.formstyle formstyle = formstyle or current.response.formstyle
if isinstance(query, Set): if isinstance(query, Set):
@@ -2194,7 +2195,7 @@ class SQLFORM(FORM):
buttondelete='icon trash icon-trash glyphicon glyphicon-trash', buttondelete='icon trash icon-trash glyphicon glyphicon-trash',
buttonedit='icon pen icon-pencil glyphicon glyphicon-pencil', buttonedit='icon pen icon-pencil glyphicon glyphicon-pencil',
buttontable='icon rightarrow icon-arrow-right glyphicon glyphicon-arrow-right', buttontable='icon rightarrow icon-arrow-right glyphicon glyphicon-arrow-right',
buttonview='icon magnifier icon-zoom-in glyphicon glyphicon-zoom-in', buttonview='icon magnifier icon-zoom-in glyphicon glyphicon-zoom-in'
) )
elif not isinstance(ui, dict): elif not isinstance(ui, dict):
raise RuntimeError('SQLFORM.grid ui argument must be a dictionary') raise RuntimeError('SQLFORM.grid ui argument must be a dictionary')
@@ -2340,11 +2341,10 @@ class SQLFORM(FORM):
else: else:
fields = [] fields = []
columns = [] columns = []
filter1 = lambda f: isinstance(f, Field) and f.type != 'blob' filter1 = lambda f: isinstance(f, Field) and f.readable and (f.type!='blob' or showblobs)
filter2 = lambda f: isinstance(f, Field) and f.readable
for table in tables: for table in tables:
fields += filter(filter1, table) fields += filter(filter1, table)
columns += filter(filter2, table) columns += filter(filter1, table)
for k, f in iteritems(table): for k, f in iteritems(table):
if not k.startswith('_'): if not k.startswith('_'):
if isinstance(f, Field.Virtual) and f.readable: if isinstance(f, Field.Virtual) and f.readable:
@@ -2862,7 +2862,7 @@ class SQLFORM(FORM):
for field in columns: for field in columns:
if not field.readable: if not field.readable:
continue continue
if field.type == 'blob': elif field.type == 'blob' and not showblobs:
continue continue
if isinstance(field, Field.Virtual) and field.tablename in row: if isinstance(field, Field.Virtual) and field.tablename in row:
try: try: