This fixes SQLFORM.grid virtualfields with fields=
This commit is contained in:
+8
-13
@@ -1912,9 +1912,8 @@ class SQLFORM(FORM):
|
|||||||
for join in left:
|
for join in left:
|
||||||
tablenames += db._adapter.tables(join)
|
tablenames += db._adapter.tables(join)
|
||||||
tables = [db[tablename] for tablename in tablenames]
|
tables = [db[tablename] for tablename in tablenames]
|
||||||
|
|
||||||
if fields:
|
if fields:
|
||||||
#add missing tablename to virtual fields
|
#add missing tablename to virtual fields
|
||||||
for table in tables:
|
for table in tables:
|
||||||
for k,f in table.iteritems():
|
for k,f in table.iteritems():
|
||||||
if isinstance(f,Field.Virtual):
|
if isinstance(f,Field.Virtual):
|
||||||
@@ -1923,21 +1922,17 @@ class SQLFORM(FORM):
|
|||||||
else:
|
else:
|
||||||
fields = []
|
fields = []
|
||||||
columns = []
|
columns = []
|
||||||
virtual_columns = []
|
filter1 = lambda f:isinstance(f,Field)
|
||||||
|
filter2 = lambda f:isinstance(f,Field) and f.readable
|
||||||
for table in tables:
|
for table in tables:
|
||||||
|
fields += filter(filter1, table)
|
||||||
|
columns += filter(filter2, table)
|
||||||
for k,f in table.iteritems():
|
for k,f in table.iteritems():
|
||||||
if not k.startswith('_'):
|
if not k.startswith('_'):
|
||||||
if isinstance(f,Field):
|
if isinstance(f,Field.Virtual) and f.readable:
|
||||||
fields.append(f) #what gets selected
|
|
||||||
if f.readable:
|
|
||||||
columns.append(f) #what gets shown
|
|
||||||
elif isinstance(f,Field.Virtual) and f.readable:
|
|
||||||
f.tablename = table._tablename
|
f.tablename = table._tablename
|
||||||
#show virtual fields after real fields so put at end of list
|
fields.append(f)
|
||||||
virtual_columns.append(f) #add to fields as well
|
columns.append(f)
|
||||||
fields = fields + virtual_columns
|
|
||||||
columns = columns + virtual_columns
|
|
||||||
|
|
||||||
if not field_id:
|
if not field_id:
|
||||||
if groupby is None:
|
if groupby is None:
|
||||||
field_id = tables[0]._id
|
field_id = tables[0]._id
|
||||||
|
|||||||
Reference in New Issue
Block a user