def read(self, request): query = request.GET['query'] (lat, lon) = (float(request.GET.get('lat')), float(request.GET.get('lon'))) limit = int(request.GET.get('limit', '10')) raw_result = execute_top(self.stmt, query_to_ft_sql(query), "POINT(%s %s)" % (lon, lat), limit) labeled_result = [dict(zip(self.fields, row)) for row in raw_result] return labeled_result
def apply(self, query, msa_name): return query.extra(tables=['geo_msa', 'geo_zip'], where=["contribution_contribution.contributor_zipcode = geo_zip.zipcode", "geo_zip.msa_id = geo_msa.id", _fulltext_clause('geo_msa.name')], params=[query_to_ft_sql(msa_name)])