mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-09 07:00:56 +00:00
add stuff to mark starting endpoint
This commit is contained in:
@ -255,14 +255,28 @@ class CategoryTree(generics.ListAPIView):
|
||||
cat_id = params.get('id', None)
|
||||
|
||||
if cat_id in (None, '', '#', ):
|
||||
queryset = queryset.filter(parent=None)
|
||||
filter_kwargs = {}
|
||||
# get whole tree
|
||||
if 'ref_type' in self.kwargs and 'ref' in self.kwargs:
|
||||
if 'part' in self.kwargs['ref_type']:
|
||||
filter_kwargs['parts__id'] = self.kwargs['ref']
|
||||
elif 'category' in self.kwargs['ref_type']:
|
||||
filter_kwargs['id'] = self.kwargs['ref']
|
||||
else:
|
||||
filter_kwargs['id'] = None
|
||||
branch = queryset.model.objects.filter(**filter_kwargs).get_ancestors(include_self=True)
|
||||
queryset = queryset.filter(parent=None) | branch
|
||||
self.kwargs['ancestors'] = branch
|
||||
else:
|
||||
queryset = queryset.filter(parent_id=cat_id)
|
||||
|
||||
return queryset
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return super().get(request, *args, **kwargs)
|
||||
def get_serializer_context(self):
|
||||
context = super().get_serializer_context()
|
||||
if 'ancestors' in self.kwargs:
|
||||
context['ancestors'] = self.kwargs['ancestors']
|
||||
return context
|
||||
|
||||
|
||||
class PartSalePriceList(generics.ListCreateAPIView):
|
||||
@ -1541,6 +1555,7 @@ part_api_urls = [
|
||||
|
||||
# Base URL for PartCategory API endpoints
|
||||
url(r'^category/', include([
|
||||
url(r'^tree/(?P<ref_type>[-\w]+)/(?P<ref>\d+)/', CategoryTree.as_view(), name='api-part-category-root-tree'),
|
||||
url(r'^tree/', CategoryTree.as_view(), name='api-part-category-tree'),
|
||||
url(r'^parameters/', CategoryParameterList.as_view(), name='api-part-category-parameter-list'),
|
||||
|
||||
|
Reference in New Issue
Block a user