|
|
@ -475,6 +475,14 @@ class CategoriesView(ListAPIView): |
|
|
).filter( |
|
|
).filter( |
|
|
Q(active_hadis_count__gt=0) | Q(children_total_count__gt=0) | Q(source_type=HadisCategory.SourceType.QURAN) |
|
|
Q(active_hadis_count__gt=0) | Q(children_total_count__gt=0) | Q(source_type=HadisCategory.SourceType.QURAN) |
|
|
) |
|
|
) |
|
|
|
|
|
search_query = (self.request.query_params.get('search') or '').strip() |
|
|
|
|
|
if search_query: |
|
|
|
|
|
queryset = queryset.filter( |
|
|
|
|
|
Q(title__icontains=search_query) | |
|
|
|
|
|
Q(slug__icontains=search_query) | |
|
|
|
|
|
Q(description__icontains=search_query) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
is_root = self.request.query_params.get('is_root', '').lower() |
|
|
is_root = self.request.query_params.get('is_root', '').lower() |
|
|
if is_root in ['true', '1']: |
|
|
if is_root in ['true', '1']: |
|
|
queryset = queryset.filter(parent__isnull=True) |
|
|
queryset = queryset.filter(parent__isnull=True) |
|
|
@ -504,11 +512,23 @@ class CategoriesBySectView(ListAPIView): |
|
|
).filter( |
|
|
).filter( |
|
|
Q(active_hadis_count__gt=0) | Q(children_total_count__gt=0) | Q(source_type=HadisCategory.SourceType.QURAN) |
|
|
Q(active_hadis_count__gt=0) | Q(children_total_count__gt=0) | Q(source_type=HadisCategory.SourceType.QURAN) |
|
|
) |
|
|
) |
|
|
is_root = self.request.query_params.get('is_root', 'true').lower() |
|
|
|
|
|
|
|
|
search_query = (self.request.query_params.get('search') or '').strip() |
|
|
|
|
|
if search_query: |
|
|
|
|
|
queryset = queryset.filter( |
|
|
|
|
|
Q(title__icontains=search_query) | |
|
|
|
|
|
Q(slug__icontains=search_query) | |
|
|
|
|
|
Q(description__icontains=search_query) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
is_root_param = self.request.query_params.get('is_root', None) |
|
|
|
|
|
if is_root_param is not None: |
|
|
|
|
|
is_root = is_root_param.lower() |
|
|
if is_root in ['true', '1']: |
|
|
if is_root in ['true', '1']: |
|
|
queryset = queryset.filter(parent__isnull=True) |
|
|
queryset = queryset.filter(parent__isnull=True) |
|
|
elif is_root in ['false', '0']: |
|
|
elif is_root in ['false', '0']: |
|
|
queryset = queryset.filter(parent__isnull=False) |
|
|
queryset = queryset.filter(parent__isnull=False) |
|
|
|
|
|
elif not search_query: |
|
|
|
|
|
queryset = queryset.filter(parent__isnull=True) |
|
|
|
|
|
|
|
|
return apply_category_ordering_and_counts(queryset, self.request) |
|
|
return apply_category_ordering_and_counts(queryset, self.request) |
|
|
|
|
|
|
|
|
|