feat: add initial/basic pagination for grids
so far this is only for client-side pagination; which means *all* grid data is dumped to JSON for Vue access. backend pagination coming soon
This commit is contained in:
parent
7feaa844af
commit
dd3d640b1c
5 changed files with 207 additions and 30 deletions
|
@ -8,24 +8,10 @@ from pyramid import testing
|
|||
from wuttjamaican.conf import WuttaConfig
|
||||
from wuttaweb.grids import base
|
||||
from wuttaweb.forms import FieldList
|
||||
from tests.util import WebTestCase
|
||||
|
||||
|
||||
class TestGrid(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.config = WuttaConfig(defaults={
|
||||
'wutta.web.menus.handler_spec': 'tests.util:NullMenuHandler',
|
||||
})
|
||||
self.app = self.config.get_app()
|
||||
|
||||
self.request = testing.DummyRequest(wutta_config=self.config, use_oruga=False)
|
||||
|
||||
self.pyramid_config = testing.setUp(request=self.request, settings={
|
||||
'mako.directories': ['wuttaweb:templates'],
|
||||
})
|
||||
|
||||
def tearDown(self):
|
||||
testing.tearDown()
|
||||
class TestGrid(WebTestCase):
|
||||
|
||||
def make_grid(self, request=None, **kwargs):
|
||||
return base.Grid(request or self.request, **kwargs)
|
||||
|
@ -144,6 +130,44 @@ class TestGrid(TestCase):
|
|||
self.assertFalse(grid.is_linked('foo'))
|
||||
self.assertTrue(grid.is_linked('bar'))
|
||||
|
||||
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 config
|
||||
self.config.setdefault('wuttaweb.grids.default_pagesize_options', '1 2 3')
|
||||
options = grid.get_pagesize_options()
|
||||
self.assertEqual(options, [1, 2, 3])
|
||||
|
||||
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 config
|
||||
self.config.setdefault('wuttaweb.grids.default_pagesize', '15')
|
||||
size = grid.get_pagesize()
|
||||
self.assertEqual(size, 15)
|
||||
|
||||
def test_render_vue_tag(self):
|
||||
grid = self.make_grid(columns=['foo', 'bar'])
|
||||
html = grid.render_vue_tag()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue