Thanks Craig for sharing your code. I'm having difficulty with the import statement:
from rnms.model import AttributeType I have replaced with my app name (carpark.model) but still get error. ImportError: cannot import name AttributeType Any idea how to resolve? Thanks, Michael On Friday, December 20, 2013 12:00:50 AM UTC+11, Craig Small wrote: > > OK, > As you probably know, you have two halves to this. You got the widget > and then you have the json call. So I use firebug to see what I am > calling for the json call. > > So the first thing to do is make sure you setting the right things, > so when you change the sort order the sidx/sord items change correctly. > > Assuming you are seeing the right urls for the json call, its time > to look at the data fetch method. > > I had to separate column sorting and relationship sorting which I did by > capturing KeyError when looking for a column. > > My code is at > https://github.com/csmall/rnms/blob/master/rnms/lib/table.py > > > 'url': '/vehicle/fetch/%d' % (int(random())), > Not required, there will be a nd parameter. > > > column = getattr(Vehicle, sidx) > I'm not sure this works with relations. Also if it doesn't exist then > youll get an exception. > > > qry = qry.order_by(getattr(column, > > sord)()).offset(offset).limit(rows).all() > So the getattr is on the column to fetch 'desc' which is a function? > ie > Vehicle.colname.desc() > This works only if the sort field is a real column. You'll get an error > otherwise. > > I tried that way and for normal columns I was getting the expected > result. I temporarily changed do_sorting() to this: > try: > sort_field = getattr(self.__entity__, sort_idx) > > except AttributeError: > return query > > return query.order_by(getattr(sort_field.sort_desc)()) > > > And was sorting nicely. > > Filtering I've locked down a lot because I wanted to use a lot of selects > rather than have people type things in. Again it gets fiddly with > relationships. > I have the added problem where I wanted to hold a filter even when the > user > adds one (so their additive). > > - Craig > -- > Craig Small (@smallsees) http://enc.com.au/ csmall at : enc.com.au > Debian GNU/Linux http://www.debian.org/ csmall at : debian.org > GPG fingerprint: 5D2F B320 B825 D939 04D2 0519 3938 F96B DF50 FEA5 > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/turbogears. For more options, visit https://groups.google.com/groups/opt_out.

