dynamic filters
This commit is contained in:
parent
6e72c7c0e4
commit
f7e4effb9f
|
|
@ -65,7 +65,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
serializer_class = serializers.FiltersTagCategoryBaseSerializer
|
||||
|
||||
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)
|
||||
|
||||
result_list = serializer.data
|
||||
|
|
@ -99,6 +99,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
"index_name": "toque_number",
|
||||
"label_translated": "Toques",
|
||||
"param_name": "toque_number__in",
|
||||
'type': 'toque',
|
||||
"filters": [{
|
||||
"id": toque_id,
|
||||
"index_name": "toque_%d" % toque_id,
|
||||
|
|
@ -134,6 +135,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
"index_name": "works_noon",
|
||||
"label_translated": "Open noon",
|
||||
"param_name": "works_noon__in",
|
||||
'type': 'weekday',
|
||||
"filters": [{
|
||||
"id": weekday,
|
||||
"index_name": week_days[weekday].lower(),
|
||||
|
|
@ -148,6 +150,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
"index_name": "works_evening",
|
||||
"label_translated": "Open evening",
|
||||
"param_name": "works_evening__in",
|
||||
'type': 'weekday',
|
||||
"filters": [{
|
||||
"id": weekday,
|
||||
"index_name": week_days[weekday].lower(),
|
||||
|
|
@ -161,7 +164,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
"index_name": "open_now",
|
||||
"label_translated": "Open now",
|
||||
"param_name": "open_now",
|
||||
"type": True
|
||||
"type": 'bool',
|
||||
}
|
||||
result_list.append(works_now)
|
||||
|
||||
|
|
@ -170,6 +173,7 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
"index_name": "works_at_weekday",
|
||||
"label_translated": "Works at weekday",
|
||||
"param_name": "works_at_weekday__in",
|
||||
'type': 'weekday',
|
||||
"filters": [{
|
||||
"id": weekday,
|
||||
"index_name": week_days[weekday].lower(),
|
||||
|
|
@ -180,7 +184,16 @@ class FiltersTagCategoryViewSet(TagCategoryViewSet):
|
|||
|
||||
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']
|
||||
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
|
||||
def mutate_request(request):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user