From 3635dd8fafd39f88fd57977917615d2c29e01f9c Mon Sep 17 00:00:00 2001 From: mdipierro Date: Fri, 11 Oct 2013 17:59:30 -0500 Subject: [PATCH] fixed problem with Virtual Fields and grid --- VERSION | 2 +- gluon/sqlhtml.py | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/VERSION b/VERSION index af1032af..042c8907 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.7.2-stable+timestamp.2013.10.11.17.06.24 +Version 2.7.2-stable+timestamp.2013.10.11.17.58.33 diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 39ace8e1..44b73b08 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -1917,14 +1917,14 @@ class SQLFORM(FORM): else: fields = [] columns = [] + filter1 = lambda f:isinstance(f,Field) + filter2 = lambda f:isinstance(f,Field) and f.readable for table in tables: + fields += filter(filter1, table) + columns += filter(filter2, table) for k,f in table.iteritems(): if not k.startswith('_'): - if isinstance(f,Field): - fields.append(f) # these are selected - if f.readable: - columns.append(f) # these are displayed - elif isinstance(f,Field.Virtual) and f.readable: + if isinstance(f,Field.Virtual) and f.readable: f.tablename = table._tablename columns.append(f) fields.append(f) @@ -2368,6 +2368,7 @@ class SQLFORM(FORM): continue if field.type == 'blob': continue + print row value = row[str(field)] maxlength = maxtextlengths.get(str(field), maxtextlength) if field.represent: