Automatically include parent tree when searching

This commit is contained in:
Oliver Walters 2026-06-19 00:49:17 +00:00
parent dd582db45b
commit 128579b318
1 changed files with 13 additions and 0 deletions

View File

@ -327,6 +327,19 @@ class CategoryTree(ListAPI):
queryset = part_serializers.CategoryTree.annotate_queryset(queryset)
return queryset
def filter_queryset(self, queryset):
"""Filter the queryset, and include all ancestors of matched items when searching."""
queryset = super().filter_queryset(queryset)
if self.request.query_params.get('search', '').strip():
ancestors = PartCategory.objects.get_queryset_ancestors(
queryset, include_self=True
)
queryset = (queryset | ancestors).distinct()
queryset = part_serializers.CategoryTree.annotate_queryset(queryset)
return queryset
class CategoryParameterList(DataExportViewMixin, OutputOptionsMixin, ListCreateAPI):
"""API endpoint for accessing a list of PartCategoryParameterTemplate objects.