A new feature in trunk allows natural language search in SQLFORM.grid
and smartgrid
for example given:
db.define_table('person',Field('name'))
form = SQLFORM.smartgrid(db.person)
you can search for
name is max
name is "Max"
person.name is "Max"
person.name = "Max"
person.name == "Max"
name contains max
name contains m and name ends with x
name starts with m and name is not equal mick
name starts with m and not name is equal mick
name starts with m and not name equals mick
name is equal or greater than max and name ends with "x"
etc.
The only rule is that field names cannot contain spaces.