feat: move "basic" grid pagination logic to wuttaweb
so far only "simple" pagination is supported by wuttaweb, so basically the main feature flag, page size, current page. in this scenario *all* data is written to client-side JSON and Buefy handles the actual pagination. backend pagination coming soon for wuttaweb but for now tailbone still handles all that.
This commit is contained in:
parent
2a0b6da2f9
commit
9da2a148c6
5 changed files with 195 additions and 47 deletions
|
@ -19,6 +19,32 @@ class TestGrid(WebTestCase):
|
|||
grid = self.make_grid('foo')
|
||||
self.assertIsInstance(grid, mod.Grid)
|
||||
|
||||
def test_deprecated_params(self):
|
||||
|
||||
# component
|
||||
grid = self.make_grid()
|
||||
self.assertEqual(grid.vue_tagname, 'tailbone-grid')
|
||||
grid = self.make_grid(component='blarg')
|
||||
self.assertEqual(grid.vue_tagname, 'blarg')
|
||||
|
||||
# pageable
|
||||
grid = self.make_grid()
|
||||
self.assertFalse(grid.paginated)
|
||||
grid = self.make_grid(pageable=True)
|
||||
self.assertTrue(grid.paginated)
|
||||
|
||||
# default_pagesize
|
||||
grid = self.make_grid()
|
||||
self.assertEqual(grid.pagesize, 20)
|
||||
grid = self.make_grid(default_pagesize=15)
|
||||
self.assertEqual(grid.pagesize, 15)
|
||||
|
||||
# default_page
|
||||
grid = self.make_grid()
|
||||
self.assertEqual(grid.page, 1)
|
||||
grid = self.make_grid(default_page=42)
|
||||
self.assertEqual(grid.page, 42)
|
||||
|
||||
def test_vue_tagname(self):
|
||||
|
||||
# default
|
||||
|
@ -133,6 +159,66 @@ class TestGrid(WebTestCase):
|
|||
grid.set_action_urls(setting, setting, 0)
|
||||
self.assertEqual(setting['_action_url_view'], '/blarg')
|
||||
|
||||
def test_pageable(self):
|
||||
grid = self.make_grid()
|
||||
self.assertFalse(grid.paginated)
|
||||
grid.pageable = True
|
||||
self.assertTrue(grid.paginated)
|
||||
grid.paginated = False
|
||||
self.assertFalse(grid.pageable)
|
||||
|
||||
def test_get_pagesize_options(self):
|
||||
grid = self.make_grid()
|
||||
|
||||
# default
|
||||
options = grid.get_pagesize_options()
|
||||
self.assertEqual(options, [5, 10, 20, 50, 100, 200])
|
||||
|
||||
# override default
|
||||
options = grid.get_pagesize_options(default=[42])
|
||||
self.assertEqual(options, [42])
|
||||
|
||||
# from legacy config
|
||||
self.config.setdefault('tailbone.grid.pagesize_options', '1 2 3')
|
||||
grid = self.make_grid()
|
||||
options = grid.get_pagesize_options()
|
||||
self.assertEqual(options, [1, 2, 3])
|
||||
|
||||
# from new config
|
||||
self.config.setdefault('wuttaweb.grids.default_pagesize_options', '4, 5, 6')
|
||||
grid = self.make_grid()
|
||||
options = grid.get_pagesize_options()
|
||||
self.assertEqual(options, [4, 5, 6])
|
||||
|
||||
def test_get_pagesize(self):
|
||||
grid = self.make_grid()
|
||||
|
||||
# default
|
||||
size = grid.get_pagesize()
|
||||
self.assertEqual(size, 20)
|
||||
|
||||
# override default
|
||||
size = grid.get_pagesize(default=42)
|
||||
self.assertEqual(size, 42)
|
||||
|
||||
# override default options
|
||||
self.config.setdefault('wuttaweb.grids.default_pagesize_options', '10 15 30')
|
||||
grid = self.make_grid()
|
||||
size = grid.get_pagesize()
|
||||
self.assertEqual(size, 10)
|
||||
|
||||
# from legacy config
|
||||
self.config.setdefault('tailbone.grid.default_pagesize', '12')
|
||||
grid = self.make_grid()
|
||||
size = grid.get_pagesize()
|
||||
self.assertEqual(size, 12)
|
||||
|
||||
# from new config
|
||||
self.config.setdefault('wuttaweb.grids.default_pagesize', '15')
|
||||
grid = self.make_grid()
|
||||
size = grid.get_pagesize()
|
||||
self.assertEqual(size, 15)
|
||||
|
||||
def test_render_vue_tag(self):
|
||||
model = self.app.model
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue