~mdipierro/web2py/devel

« back to all changes in this revision

Viewing changes to gluon/sqlhtml.py

  • Committer: Massimo Di Pierro
  • Date: 2011-11-21 22:57:19 UTC
  • Revision ID: massimo.dipierro@gmail.com-20111121225719-i6vhwpg4mfmrdow4
fixed extra column problem with grid, thanks Anthony

Show diffs side-by-side

added added

removed removed

Lines of Context:
1701
1701
                            keywords=request.vars.keywords or '',
1702
1702
                            order=key)),_class=trap_class())
1703
1703
            head.append(TH(header, _class=ui.get('default','')))
1704
 
            
1705
 
        head.append(TH(_class=ui.get('default','')))
 
1704
 
 
1705
        if links and links_in_grid:
 
1706
            for link in links:
 
1707
                if isinstance(link,dict): 
 
1708
                    head.append(TH(link['header'], _class=ui.get('default','')))
 
1709
        
 
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','')))
1706
1716
        
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')
1793
 
                if links_in_grid:
1794
 
                    for link in links or []:
 
1803
                if links and links_in_grid:
 
1804
                    for link in links:
1795
1805
                        if isinstance(link, dict):
1796
1806
                            tr.append(TD(link['body'](row)))
1797
1807
                        else:
1798
1808
                            if link(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]),
1812
 
                            delete='tr'))
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]),
 
1823
                                delete='tr'))
 
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')