wiki:ServerSidePagination

Version 9 (modified by Fran Boon, 15 years ago) ( diff )

--

Server-Side Pagination

Currently we do all pagination client-side which won't be possible to keep doing as we accumulate more data

This will be needed for:

fractalis has offered to look at this

Will need to patch into the models\01_RESTlike_Controller.

We already have options to filter the results within a busy REST controller, so could do something like:

if request.vars.page and request.vars.pagesize:
    start = (int(request.vars.page) - 1) * int(request.vars.pagesize)
    stop = int(request.vars.page) * int(request.vars.pagesize)
    response.s3.filter = (db['%s_%s' % (module, resource)].id > 0).select(limitby=(start, stop))

Unfortunately query doesn't include the .select()

We already use request.vars.limit in the search.json method/representation.

  • we could use this & add a request.vars.page in shn_list()

Maybe look at the currently-unused modules/webgrid.py.

pagenav in models\01_RESTlike_Controller seems unused currently...was an older implementation of a webgrid...can probably be removed.


Haiti

Note: See TracWiki for help on using the wiki.