Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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"])
Esempio n. 4
0
    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()
Esempio n. 5
0
 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"])