Commit c89b6cb3 by Clinton Blackburn Committed by Clinton Blackburn

Fixed search serializer bug

Accounting for the fact that not all serializers have the field_queries attribute.

ECOM-4801
parent 55d6f543
......@@ -46,7 +46,7 @@ class FacetQueryBuilderWithQueries(FacetQueryBuilder):
def build_query(self, **filters):
query = super(FacetQueryBuilderWithQueries, self).build_query(**filters)
facet_serializer_cls = self.view.get_facet_serializer_class()
query['query_facets'] = facet_serializer_cls.Meta.field_queries
query['query_facets'] = getattr(facet_serializer_cls.Meta, 'field_queries', {})
return query
......
......@@ -415,7 +415,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer):
_abstract = True
def get_fields(self):
query_facet_counts = self.instance.pop('queries')
query_facet_counts = self.instance.pop('queries', {})
field_mapping = super(BaseHaystackFacetSerializer, self).get_fields()
......@@ -432,7 +432,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer):
def format_query_facet_data(self, query_facet_counts):
query_data = {}
for field, options in self.Meta.field_queries.items(): # pylint: disable=no-member
for field, options in getattr(self.Meta, 'field_queries', {}).items(): # pylint: disable=no-member
count = query_facet_counts.get(field, 0)
if count:
query_data[field] = {
......@@ -468,8 +468,6 @@ class CourseFacetSerializer(BaseHaystackFacetSerializer):
class CourseRunSearchSerializer(HaystackSerializer):
content_type = serializers.CharField(source='model_name')
class Meta:
field_aliases = COMMON_SEARCH_FIELD_ALIASES
fields = COURSE_RUN_SEARCH_FIELDS
......
......@@ -418,7 +418,7 @@ class BaseCourseHaystackViewSet(FacetMixin, HaystackViewSet):
queryset = super(BaseCourseHaystackViewSet, self).filter_facet_queryset(queryset)
facet_serializer_cls = self.get_facet_serializer_class()
field_queries = facet_serializer_cls.Meta.field_queries
field_queries = getattr(facet_serializer_cls.Meta, 'field_queries', {})
for facet in self.request.query_params.getlist('selected_query_facets'):
query = field_queries.get(facet)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment