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): ...@@ -46,7 +46,7 @@ class FacetQueryBuilderWithQueries(FacetQueryBuilder):
def build_query(self, **filters): def build_query(self, **filters):
query = super(FacetQueryBuilderWithQueries, self).build_query(**filters) query = super(FacetQueryBuilderWithQueries, self).build_query(**filters)
facet_serializer_cls = self.view.get_facet_serializer_class() 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 return query
......
...@@ -415,7 +415,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer): ...@@ -415,7 +415,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer):
_abstract = True _abstract = True
def get_fields(self): 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() field_mapping = super(BaseHaystackFacetSerializer, self).get_fields()
...@@ -432,7 +432,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer): ...@@ -432,7 +432,7 @@ class BaseHaystackFacetSerializer(HaystackFacetSerializer):
def format_query_facet_data(self, query_facet_counts): def format_query_facet_data(self, query_facet_counts):
query_data = {} 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) count = query_facet_counts.get(field, 0)
if count: if count:
query_data[field] = { query_data[field] = {
...@@ -468,8 +468,6 @@ class CourseFacetSerializer(BaseHaystackFacetSerializer): ...@@ -468,8 +468,6 @@ class CourseFacetSerializer(BaseHaystackFacetSerializer):
class CourseRunSearchSerializer(HaystackSerializer): class CourseRunSearchSerializer(HaystackSerializer):
content_type = serializers.CharField(source='model_name')
class Meta: class Meta:
field_aliases = COMMON_SEARCH_FIELD_ALIASES field_aliases = COMMON_SEARCH_FIELD_ALIASES
fields = COURSE_RUN_SEARCH_FIELDS fields = COURSE_RUN_SEARCH_FIELDS
......
...@@ -418,7 +418,7 @@ class BaseCourseHaystackViewSet(FacetMixin, HaystackViewSet): ...@@ -418,7 +418,7 @@ class BaseCourseHaystackViewSet(FacetMixin, HaystackViewSet):
queryset = super(BaseCourseHaystackViewSet, self).filter_facet_queryset(queryset) queryset = super(BaseCourseHaystackViewSet, self).filter_facet_queryset(queryset)
facet_serializer_cls = self.get_facet_serializer_class() 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'): for facet in self.request.query_params.getlist('selected_query_facets'):
query = field_queries.get(facet) 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