On Jun 17, 8:21 pm, rochacbruno <rochacbr...@gmail.com> wrote: > Ok, I will be waiting, > I am trying to do something like > this:http://demos.telerik.com/aspnet-ajax/filter/examples/firstlook/defaul...
(the demo doesn't seem to work - if you filter, the results don't....) but the way the js controls work is certainly nice.... > > tks > {{ }}'s > > On 17 jun, 21:55, "mr.freeze" <nat...@freezable.com> wrote: > > > > > I sent a patch that allows this: > > > form, results = crud.search(db.test, > > queries = ['equals', 'not equal', 'contains'], > > query_labels={'equals':'Equals', > > 'not equal':'Not equal'}, > > fields = ['id', 'children'], > > field_labels = {'id':'ID','children':'Children'}, > > zero='Please choose', > > query = (db.test.id > 0)&(db.test.id != 3) ) > > > On Jun 17, 6:59 pm, rochacbruno <rochacbr...@gmail.com> wrote: > > > > I found a way > > > > I made a hard edit in the /gluon/tools.py > > > > I'm trying now to find a way to override that in the Controller > > > and translate the texts/ change the HTML that renders > > > > will great if there is an API to do this > > > > {{ }}' s > > > --- > > > > def get_query(self, field, op, value, refsearch=False): > > > try: > > > if refsearch: format = self.get_format(field) > > > if op == 'equals': > > > return field == value if not refsearch else \ > > > lambda row: row[field.name][format] == value > > > elif op == 'not equal': > > > return field != value if not refsearch else \ > > > lambda row: row[field.name][format] != value > > > elif op == 'greater than': > > > return field > value if not refsearch else \ > > > lambda row: row[field.name][format] > value > > > elif op == 'less than': > > > return field < value if not refsearch else \ > > > lambda row: row[field.name][format] < value > > > elif op == 'starts with': > > > return field.like(value+'%') if not refsearch else \ > > > lambda row: str(row[field.name] > > > [format]).startswith(value) > > > elif op == 'ends with': > > > return field.like('%'+value) if not refsearch else \ > > > lambda row: str(row[field.name] > > > [format]).endswith(value) > > > elif op == 'contains': > > > return field.like('%'+value+'%') if not refsearch else > > > \ > > > lambda row: value in row[field.name] > > > [format] > > > except: > > > return None > > > > def search(self, *tables, **args): > > > table=tables[0] > > > fields=args.get('fields',None) > > > request = self.environment.request > > > db = self.db > > > if not (isinstance(table, db.Table) or table in db.tables): > > > raise HTTP(404) > > > tbl = TABLE() > > > selected = []; refsearch = []; results = [] > > > ops = ['', 'equals', 'not equal', 'greater than', 'less than', > > > 'starts with', 'ends with', 'contains'] > > > query = table.id > 0 > > > for fieldname in fields or table.fields: > > > field = table[fieldname] > > > chkval = request.vars.get('chk' + fieldname, None) > > > txtval = request.vars.get('txt' + fieldname, None) > > > opval = request.vars.get('op' + fieldname, None) > > > row = TR(TD(INPUT(_type = "checkbox", _name = "chk" + > > > fieldname, > > > value = chkval == 'on')), > > > TD(field),TD(SELECT(ops, _name = "op" + > > > fieldname, > > > value = opval)), > > > TD(INPUT(_type = "text", _name = "txt" + > > > fieldname, > > > _value = txtval, _id='txt' + fieldname, > > > _class = str(field.type)))) > > > tbl.append(row) > > > if chkval: > > > if txtval and opval != '': > > > if field.type[0:10] == 'reference ': > > > refsearch.append(self.get_query(field, > > > opval, txtval, refsearch=True)) > > > else: > > > value, error = field.validate(txtval) > > > if not error: > > > ### TODO deal with 'starts with', 'ends > > > with', 'contains' on GAE > > > query &= self.get_query(field, opval, > > > value) > > > else: > > > row[3].append(DIV(error,_class='error')) > > > selected.append(field) > > > form = FORM(tbl,INPUT(_type="submit")) > > > if selected: > > > try: > > > results = db(query).select(*selected, **args) > > > for r in refsearch: > > > results = results.find(r) > > > except: # hmmm, we should do bettere here > > > results = None > > > return form, results > > > > On Jun 17, 8:41 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > > I will make a patch to enable this. > > > > > On Jun 17, 4:24 pm, rochacbruno <rochacbr...@gmail.com> wrote: > > > > > > Sorry, I answered only to the author.. > > > > > > This code: > > > > > def crudsearch(): > > > > > form=crud.search(db.posts) > > > > > return dict(form=form) > > > > > > returns a form like that:http://twitpic.com/1xmrao/full > > > > > > I know how to deal with the forms that way, but I'm talking about the > > > > > search controls that holds operators ( greater, equals, starts.. etc) > > > > > is there any way to access and modify these controls, just as we do > > > > > with form controls? > > > > > > tks > > > > > > {{ }}'s > > > > > > On Jun 17, 12:30 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > crud.settings.formstyle='table2cols' or 'table3cols' or 'divs' or > > > > > > 'ul' > > > > > > > and for every field you have > > > > > > > db.table.field.label='...' > > > > > > db.table.field.comment='...' > > > > > > db.table.field.wdiget=.... > > > > > > > On Jun 17, 8:35 am, rochacbruno <rochacbr...@gmail.com> wrote: > > > > > > > > hello I did not find any documentation or example explaining how > > > > > > > to > > > > > > > customize a form created with crud.search() > > > > > > > I would like to change the text displayed on the operators > > > > > > > (dropdown) > > > > > > > and change layout that other controls are displayed > > > > > > > > I can do that with Jquery and CSS, but I want to know which > > > > > > > options I > > > > > > > have in Action level, > > > > > > > > I tried consulting the crud.search on shell, some properties are > > > > > > > displayed and I will play a lot with them, before doing that, I > > > > > > > want > > > > > > > to know if someone has any example or a resource link. > > > > > > > > anybody does? > > > > > > > > Thanks > > > > > > > > { }'s > > > > > > > --http://rochacbruno.com.br