dynamic filters
This commit is contained in:
parent
6e72c7c0e4
commit
f7e4effb9f
|
|
@ -65,7 +65,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
serializer_class = serializers.FiltersTagCategoryBaseSerializer
|
serializer_class = serializers.FiltersTagCategoryBaseSerializer
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
queryset = self.filter_queryset(self.get_queryset())
|
queryset = self.filter_queryset(self.get_queryset().exclude(public=False))
|
||||||
serializer = self.get_serializer(queryset, many=True)
|
serializer = self.get_serializer(queryset, many=True)
|
||||||
|
|
||||||
result_list = serializer.data
|
result_list = serializer.data
|
||||||
|
|
@ -99,6 +99,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
"index_name": "toque_number",
|
"index_name": "toque_number",
|
||||||
"label_translated": "Toques",
|
"label_translated": "Toques",
|
||||||
"param_name": "toque_number__in",
|
"param_name": "toque_number__in",
|
||||||
|
'type': 'toque',
|
||||||
"filters": [{
|
"filters": [{
|
||||||
"id": toque_id,
|
"id": toque_id,
|
||||||
"index_name": "toque_%d" % toque_id,
|
"index_name": "toque_%d" % toque_id,
|
||||||
|
|
@ -134,6 +135,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
"index_name": "works_noon",
|
"index_name": "works_noon",
|
||||||
"label_translated": "Open noon",
|
"label_translated": "Open noon",
|
||||||
"param_name": "works_noon__in",
|
"param_name": "works_noon__in",
|
||||||
|
'type': 'weekday',
|
||||||
"filters": [{
|
"filters": [{
|
||||||
"id": weekday,
|
"id": weekday,
|
||||||
"index_name": week_days[weekday].lower(),
|
"index_name": week_days[weekday].lower(),
|
||||||
|
|
@ -148,6 +150,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
"index_name": "works_evening",
|
"index_name": "works_evening",
|
||||||
"label_translated": "Open evening",
|
"label_translated": "Open evening",
|
||||||
"param_name": "works_evening__in",
|
"param_name": "works_evening__in",
|
||||||
|
'type': 'weekday',
|
||||||
"filters": [{
|
"filters": [{
|
||||||
"id": weekday,
|
"id": weekday,
|
||||||
"index_name": week_days[weekday].lower(),
|
"index_name": week_days[weekday].lower(),
|
||||||
|
|
@ -161,7 +164,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
"index_name": "open_now",
|
"index_name": "open_now",
|
||||||
"label_translated": "Open now",
|
"label_translated": "Open now",
|
||||||
"param_name": "open_now",
|
"param_name": "open_now",
|
||||||
"type": True
|
"type": 'bool',
|
||||||
}
|
}
|
||||||
result_list.append(works_now)
|
result_list.append(works_now)
|
||||||
|
|
||||||
|
|
@ -170,6 +173,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
"index_name": "works_at_weekday",
|
"index_name": "works_at_weekday",
|
||||||
"label_translated": "Works at weekday",
|
"label_translated": "Works at weekday",
|
||||||
"param_name": "works_at_weekday__in",
|
"param_name": "works_at_weekday__in",
|
||||||
|
'type': 'weekday',
|
||||||
"filters": [{
|
"filters": [{
|
||||||
"id": weekday,
|
"id": weekday,
|
||||||
"index_name": week_days[weekday].lower(),
|
"index_name": week_days[weekday].lower(),
|
||||||
|
|
@ -180,7 +184,16 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
||||||
|
|
||||||
search_view_class = self.define_search_view_by_request(request)
|
search_view_class = self.define_search_view_by_request(request)
|
||||||
facets = search_view_class.as_view({'get': 'list'})(self.mutate_request(self.request)).data['facets']
|
facets = search_view_class.as_view({'get': 'list'})(self.mutate_request(self.request)).data['facets']
|
||||||
return Response(self.remove_empty_filters(result_list, facets))
|
result_list = self.remove_empty_filters(result_list, facets)
|
||||||
|
tag_category = list(filter(lambda x: x.get('index_name') == 'tag', result_list))
|
||||||
|
result_list = [category for category in result_list if category.get('index_name') != 'tag']
|
||||||
|
if len(tag_category):
|
||||||
|
tag_category = list(filter(lambda x: x.get('index_name') == 'pop', tag_category[0]['filters']))
|
||||||
|
if len(tag_category): # we have Pop tag in our results
|
||||||
|
tag_category = tag_category[0]
|
||||||
|
tag_category['param_name'] = 'tags_id__in'
|
||||||
|
result_list.append(tag_category)
|
||||||
|
return Response(result_list)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def mutate_request(request):
|
def mutate_request(request):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user