def _filter(self, req, filters, **kwargs): form = ApiSearchForm(filters) if form.is_valid(): qs = Webapp.from_search(self.req, **kwargs) return _filter_search( self.req, qs, form.cleaned_data)._build_query() else: return form.errors.copy()
def _filter(self, req, filters, sorting=None): form = ApiSearchForm(filters) if form.is_valid(): qs = Webapp.from_search().facet('category') return _filter_search(self.req, qs, form.cleaned_data, sorting)._build_query() else: return form.errors.copy()
def get_list(self, request=None, **kwargs): form = ApiSearchForm(request.GET if request else None) if not form.is_valid(): raise self.form_errors(form) # Search specific processing of the results. qs = _get_query(request, form, form.cleaned_data) qs = _filter_search(qs, form.cleaned_data) res = amo.utils.paginate(request, qs) # Rehydrate the results as per tastypie. bundles = [ self.build_bundle(obj=obj, request=request) for obj in res.object_list ] objs = [self.full_dehydrate(bundle) for bundle in bundles] # This isn't as quite a full as a full TastyPie meta object, # but at least it's namespaced that way and ready to expand. return self.create_response(request, {'objects': objs, 'meta': {}})
def _get_search_form(request): form = ApiSearchForm() fields = [f.name for f in form.visible_fields() + form.hidden_fields()] get = dict((k, v) for k, v in request.GET.items() if k in fields) return ApiSearchForm(get or None)
def get_search_data(self, request): form = ApiSearchForm(request.GET if request else None) if not form.is_valid(): raise self.form_errors(form) return form.cleaned_data