2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-08-07 12:22:11 +00:00

Reduced tree time with some better queries

This commit is contained in:
Oliver Walters
2019-06-17 23:52:49 +10:00
parent b519a1981d
commit 037dc6a0d6
3 changed files with 21 additions and 7 deletions

View File

@@ -34,6 +34,11 @@ class PartCategoryTree(TreeSerializer):
def root_url(self):
return reverse('part-index')
def get_items(self):
print("hello world")
return PartCategory.objects.all().prefetch_related('parts', 'children')
class CategoryList(generics.ListCreateAPIView):
""" API endpoint for accessing a list of PartCategory objects.

View File

@@ -69,13 +69,20 @@ class PartCategory(InvenTreeTree):
return self.partcount
@property
def partcount(self):
def partcount(self, cascade=True, active=True):
""" Return the total part count under this category
(including children of child categories)
"""
return len(Part.objects.filter(category__in=self.getUniqueChildren(),
active=True))
if cascade:
query = Part.objects.filter(category__in=self.getUniqueChildren())
else:
query = Part.objects.filter(category=self)
if active:
query = query.filter(active=True)
return query.count()
@property
def has_parts(self):