1701
1701
keywords=request.vars.keywords or '',
1702
1702
order=key)),_class=trap_class())
1703
1703
head.append(TH(header, _class=ui.get('default','')))
1705
head.append(TH(_class=ui.get('default','')))
1705
if links and links_in_grid:
1707
if isinstance(link,dict):
1708
head.append(TH(link['header'], _class=ui.get('default','')))
1710
# Include extra column for buttons if needed.
1711
include_buttons_column = (details or editable or deletable or
1712
(links and links_in_grid and
1713
not all([isinstance(link, dict) for link in links])))
1714
if include_buttons_column:
1715
head.append(TH(_class=ui.get('default','')))
1707
1717
paginator = UL()
1708
1718
if paginate and paginate<nrows:
1790
1800
value=field.formatter(value)
1791
1801
tr.append(TD(value))
1792
1802
row_buttons = TD(_class='row_buttons')
1794
for link in links or []:
1803
if links and links_in_grid:
1795
1805
if isinstance(link, dict):
1796
1806
tr.append(TD(link['body'](row)))
1799
1809
row_buttons.append(link(row))
1800
if details and (not callable(details) or details(row)):
1801
row_buttons.append(gridbutton(
1802
'buttonview', 'View',
1803
url(args=['view',tablename,id])))
1804
if editable and (not callable(editable) or editable(row)):
1805
row_buttons.append(gridbutton(
1806
'buttonedit', 'Edit',
1807
url(args=['edit',tablename,id])))
1808
if deletable and (not callable(deletable) or deletable(row)):
1809
row_buttons.append(gridbutton(
1810
'buttondelete', 'Delete',
1811
callback=url(args=['delete',tablename,id]),
1813
tr.append(row_buttons)
1810
if include_buttons_column:
1811
if details and (not callable(details) or details(row)):
1812
row_buttons.append(gridbutton(
1813
'buttonview', 'View',
1814
url(args=['view',tablename,id])))
1815
if editable and (not callable(editable) or editable(row)):
1816
row_buttons.append(gridbutton(
1817
'buttonedit', 'Edit',
1818
url(args=['edit',tablename,id])))
1819
if deletable and (not callable(deletable) or deletable(row)):
1820
row_buttons.append(gridbutton(
1821
'buttondelete', 'Delete',
1822
callback=url(args=['delete',tablename,id]),
1824
tr.append(row_buttons)
1814
1825
tbody.append(tr)
1815
1826
htmltable.append(tbody)
1816
1827
htmltable = DIV(htmltable,_style='width:100%;overflow-x:scroll')