def filter_queryset(self, queryset): if self.q: queryset = filter_by_query(queryset, self.q) if self.location_type: queryset = filter_by_location_type(queryset, self.location_type) if self.postcode: queryset = filter_by_postcode(queryset, self.postcode, self.radius) if self.postcode and not self.keyword_sort: queryset = sort_by_postcode(queryset, self.postcode) if self.category: queryset = filter_by_category(queryset, self.category) return queryset
def filter_queryset(self, queryset): radius = self.input_data.get('radius') postcode = self.input_data.get('postcode') query = self.input_data.get('q', None) category = self.input_data.get('category', None) location_type = self.input_data.get('location_type', None) if query: queryset = filter_by_query(queryset, query) if category: queryset = filter_by_category(queryset, category) if location_type: queryset = filter_by_location_type(queryset, location_type) queryset = filter_by_postcode(queryset, postcode, radius) queryset = sort_by_postcode(queryset, postcode) return queryset
def filter_queryset(self, queryset): if self.category: queryset = filter_by_category(queryset, self.category) if self.location_type: queryset = filter_by_location_type(queryset, self.location_type) if self.postcode: queryset = filter_by_postcode(queryset, self.postcode, self.radius) if self.q: queryset = filter_by_query(queryset, self.q) if self.q and self.sort == 'keyword': results = keyword_order(queryset) elif self.q and self.sort in ['best_match', None, '']: results = combined_order(queryset, self.postcode) else: results = postcode_order(queryset, self.postcode) self.distance_scores = self.check_distance_within_radius(results["distance_scores"], self.radius) return Service.objects.filter(id__in=results["ids"]).order_by(results["order"])
def retrieve_new_services(self, comparison_date): # Create connection to elastic search connections.create_connection( hosts=[settings.ELASTICSEARCH_URL], timeout=20, http_auth=(settings.ELASTICSEARCH_USERNAME, settings.ELASTICSEARCH_PASSWORD)) queryset = Search(index='search', doc_type='service') queryset = filter_by_postcode(queryset, self.postcode) if (self.category): queryset = filter_by_category(queryset, self.category) queryset = queryset.sort({"created_on": {"order": "desc"}}) comparison_date_string = comparison_date.strftime("%Y-%m-%d" 'T' "%H:%M:%S") queryset = filter_by_created_on(queryset, comparison_date_string) return queryset.execute()
def filter_queryset(self, queryset): queryset = filter_by_category(queryset, self.category) queryset = filter_by_postcode(queryset, self.postcode, self.radius) results = postcode_order(queryset, self.postcode) return Service.objects.filter(id__in=results["ids"]).order_by( results["order"])