def search_by_keyword(request): keyword = request.GET.get('keyword') or '' # we can only do full text search on two words for now if len( re.split("\s*", keyword) ) > 2: keyword = " ".join( re.split("\s*", keyword)[:2] ) template_params = { 'keyword': keyword, 'dev': os.environ["SERVER_SOFTWARE"].find('Development') != -1 } template_params.update(global_template_params()) if keyword: # Search the 'Contract' Entity based on our keyword #query = search.SearchableQuery('Contract') #query.Search(keyword) #results = query.Get(50) query = Contract.all().search(keyword) more_template_params = _process_query(request, query) template_params.update(more_template_params) else: pass return render_to_response('search_results.html', template_params)
def search_by_prop(request, prop=None, keyword=None): template_params = { 'keyword': keyword, 'prop': prop, } template_params.update(global_template_params()) if keyword and prop: query = Contract.all() query.filter("%s =" % prop, keyword) more_template_params = _process_query(request, query) template_params.update(more_template_params) else: pass return render_to_response('search_results.html', template_params)
def search_by_keyword(request): keyword = request.GET.get('keyword') or '' template_params = { 'keyword': keyword, 'dev': os.environ["SERVER_SOFTWARE"].find('Development') != -1 } template_params.update(global_template_params) if keyword: # Search the 'Contract' Entity based on our keyword #query = search.SearchableQuery('Contract') #query.Search(keyword) #results = query.Get(50) query = Contract.all().search(keyword) more_template_params = _process_query(request, query) template_params.update(more_template_params) else: pass return render_to_response('search_results.html', template_params)
def rpc_search_by_keyword(request): keyword = request.GET.get('keyword') or '' offset = int(request.GET.get('offset') or 0) limit = 50 response = { 'keyword': keyword, 'CURRENT_VERSION_ID': os.environ['CURRENT_VERSION_ID'] } if keyword: resultset = [] query = Contract.all().search(keyword) results = query.fetch(limit, offset) #XXX django simplejson can't understand db.Model entities yet for result in results: result.contract_value = result.contract_value.replace('$', '') result.contract_value = result.contract_value.replace(',', '') try: result.contract_value = float(result.contract_value) except: # contract_value could have chars pass resultset.append({ 'agency_name' : result.agency_name, 'vendor_name' : result.vendor_name, 'contract_value' : result.contract_value, 'contract_date': result.contract_date, 'description': result.description, 'comments': result.comments, 'uri': result.uri, }) response['resultset'] = resultset else: pass return HttpResponse(simplejson.dumps(response), mimetype='application/javascript')