tosca widget wrapper around jqgrid library
Project description
Detailed Documentation
tw.jqgrid documentation
- tw.jqmultiselect is a tosca widget wrapper around jquery grid plugin
which can be found here :
the version released with this package is 3.7.2
in the view controller
from tw.jqgrid import JqGrid colNames = ['ID','Title', 'Synopsis'] colModel = [ {'name':'id', 'index':'id', 'width':20, 'align':'right'}, {'name':'title', 'index':'title','width':100, 'align':'left'}, {'name':'synopsis', 'index':'synopsis','width':580, 'align':'left', 'sortable':False}, ] search_options = { "caption": "Search...", "Find": "Find", "Reset": "Reset", "sopt" : ['cn', 'bw'], "closeOnEscape":True, } navbuttons_options = { "view":False, "edit": False, "add": False, "del": False, "search":True, "refresh":True, } grid_local = JqGrid('movie_list', url='fetch', caption='Movies', colNames=colNames, colModel=colModel, rowList=[5,10], rowNum=5, sortname='title', viewrecords=True, width='auto', height='auto', shrinkToFit=True, search_options = search_options, navbuttons_options = navbuttons_options, ) class MoviesController(BaseRestController): @expose('project.templates.movies.get_all') def get_all(self): pylons.c.grid = grid_local return dict(page='all movies')
in the template:
${tmpl_context.grid()}
now to feed data we need a controller:
from math import ceil @expose('json') def fetch(self, page=1, rows=10, sidx=1, sord='asc', _search='false',\ searchOper=u'', searchField=u'', searchString=u'', **kwargs): offset = (int(page)-1) * int(rows) q = Movie.query search_bool = eval(_search.capitalize()) if (search_bool): field = str(searchField) field_attr = getattr(Movie, field) if searchOper == u'cn': q = medias_q.filter(field_attr.contains(searchString)) if searchOper == u'bw': q = q.filter(field_attr.startswith(searchString)) result_count = medias_q.count() total = int(ceil(result_count / float(rows))) # total nb of pages column = getattr(Movie.table.c, sidx) movies = q.order_by(getattr(column,sord)()).offset(offset).limit(rows) rows = [{'id' : movie.id, 'cell': [movie.id, '<a href="/medias/%s/">%s</a>' % (movie.id, movie.title), movie.synopsis]} for movie in movies] return dict(page=page, total=total, records=result_count, rows=rows)
design it:
tw.jqgrid rely on tw.uitheme for its design, the smooth theme is the default you can use any other theme, or roll your own theme
below a code snippet on how to do that:
from tw.uitheme import lefrog_css, peppergrinder_css from tw.jqgrid import jqgrid_css, jqgrid_search_css class CustomGrid(JqGrid): css = [peppergrinder_css, jqgrid_css, jqgrid_search_css] grid_local = CustomGrid(.....
Contributors
Main developpers
Nicolas Laurance <nicolas[dot]laurance[at]gmail[dot]com>
with contributions from
Tuomas Peltonen
Change history
New in 0.1
0.1b1 added parameter for edit url
0.1a4 sortorder has “asc” as default value better example in readme
0.1a3 added sortorder param to allow setting of default order thanks to : Tuomas Peltonen
0.1a2 added parameters for subgrids
0.1a1 added dependency on tw.uitheme for design
0.1a0 First Release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for tw.jqgrid-0.1b1dev_20101020-py2.6.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 127788ff94f5f84d11471b1342542179f23e6c3ed46e5f08f63e43c57159fbee |
|
MD5 | 75b02115e4a031fa3b8b1744138a3a24 |
|
BLAKE2b-256 | 809d4d60cb3e404c0620c15765f67ad0d5c6a59deded323a10172fab90f7f904 |