Add support for "new-style grids" and "model master views".
Finally, an API that makes some sense... We don't yet have feature parity with the old-style grids and CRUD views, but this is already a significant improvement to the design. Still needs a lot of docs though...
This commit is contained in:
parent
62b7194c21
commit
585eb09bec
26 changed files with 2296 additions and 94 deletions
7
tailbone/templates/newgrids/complete.mako
Normal file
7
tailbone/templates/newgrids/complete.mako
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<div class="newgrid-wrapper">
|
||||
% if grid.filterable:
|
||||
${grid.render_filters()|n}
|
||||
% endif
|
||||
${grid.render_grid()|n}
|
||||
</div><!-- newgrid-wrapper -->
|
||||
31
tailbone/templates/newgrids/filters.mako
Normal file
31
tailbone/templates/newgrids/filters.mako
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<div class="newfilters">
|
||||
|
||||
${form.begin(method='get')}
|
||||
|
||||
<fieldset>
|
||||
<legend>Filters</legend>
|
||||
% for filtr in form.iter_filters():
|
||||
<div class="filter" id="filter-${filtr.key}" data-key="${filtr.key}"${' style="display: none;"' if not filtr.active else ''|n}>
|
||||
${form.checkbox('{0}-active'.format(filtr.key), class_='active', id='filter-active-{0}'.format(filtr.key), checked=filtr.active)}
|
||||
<label for="filter-active-${filtr.key}">${filtr.label}</label>
|
||||
<div class="inputs">
|
||||
${form.filter_verb(filtr)}
|
||||
${form.filter_value(filtr)}
|
||||
</div>
|
||||
</div>
|
||||
% endfor
|
||||
</fieldset>
|
||||
|
||||
<div class="buttons">
|
||||
${form.tag('button', type='submit', id='apply-filters', c="Apply Filters")}
|
||||
<select id="add-filter">
|
||||
<option value="">Add a Filter</option>
|
||||
% for filtr in form.iter_filters():
|
||||
<option value="${filtr.key}"${' disabled="disabled"' if filtr.active else ''|n}>${filtr.label}</option>
|
||||
% endfor
|
||||
</select>
|
||||
</div>
|
||||
|
||||
${form.end()}
|
||||
</div><!-- newfilters -->
|
||||
50
tailbone/templates/newgrids/grid.mako
Normal file
50
tailbone/templates/newgrids/grid.mako
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<div ${format_attrs(**grid.get_div_attrs())}>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
## % if grid.checkboxes:
|
||||
## <th class="checkbox">${h.checkbox('check-all')}</th>
|
||||
## % endif
|
||||
% for column in grid.iter_visible_columns():
|
||||
${grid.column_header(column)}
|
||||
% endfor
|
||||
% if grid.show_actions_column:
|
||||
<th class="actions">Actions</th>
|
||||
% endif
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
% for i, row in enumerate(grid.iter_rows(), 1):
|
||||
<tr ${format_attrs(**grid.get_row_attrs(row, i))}>
|
||||
## % if grid.checkboxes:
|
||||
## <td class="checkbox">${grid.checkbox(row)}</td>
|
||||
## % endif
|
||||
% for column in grid.iter_visible_columns():
|
||||
<td ${format_attrs(**grid.get_cell_attrs(row, column))}>${grid.render_cell(row, column)}</td>
|
||||
% endfor
|
||||
% if grid.show_actions_column:
|
||||
<td class="actions">
|
||||
${grid.render_actions(row)}
|
||||
</td>
|
||||
% endif
|
||||
</tr>
|
||||
% endfor
|
||||
</tbody>
|
||||
</table>
|
||||
% if grid.pageable:
|
||||
<div class="pager">
|
||||
<p class="showing">
|
||||
showing ${grid.pager.first_item} thru ${grid.pager.last_item} of ${grid.pager.item_count}
|
||||
% if grid.pager.page_count > 1:
|
||||
(page ${grid.pager.page} of ${grid.pager.page_count})
|
||||
% endif
|
||||
</p>
|
||||
<p class="page-links">
|
||||
${h.select('pagesize', grid.pager.items_per_page, grid.get_pagesize_options())}
|
||||
per page
|
||||
${grid.pager.pager('$link_first $link_previous ~1~ $link_next $link_last', symbol_next='next', symbol_previous='prev', partial=1)}
|
||||
</p>
|
||||
</div>
|
||||
% endif
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue