tw.jqgrid 0.3.2
tosca widget wrapper around jqgrid library
Contents
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.8.1
Use as a grid
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)
Note
this is written for an elixir model, adapt to your need
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.3
0.3.2
- added parameter to show/hide collapse button
- more control of pager options
0.3.1
- added sortable parameter
0.3
- added parameters to use the grid as a jqTreeGrid
- more events supported
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
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| tw.jqgrid-0.3.2.tar.gz (md5) | Source | 2011-06-10 | 490KB | 540 | |
- Author: Nicolas Laurance
- Home Page: http://code.google.com/p/twjqgrid
- Keywords: toscawidgets.widgets,jquery,grid,jqgrid
-
Categories
- Development Status :: 4 - Beta
- Environment :: Web Environment
- Environment :: Web Environment :: ToscaWidgets
- Framework :: TurboGears :: Widgets
- Intended Audience :: Developers
- License :: OSI Approved :: GNU Affero General Public License v3
- License :: OSI Approved :: MIT License
- Operating System :: OS Independent
- Programming Language :: Python
- Topic :: Software Development :: Libraries :: Python Modules
- Topic :: Software Development :: Widget Sets
- Package Index Owner: nlaurance
- DOAP record: tw.jqgrid-0.3.2.xml
