Add 'include self' option to getUniqueChildren

This commit is contained in:
Oliver Walters 2019-06-18 01:02:56 +10:00
parent 16b6ae8d61
commit 37dba91b4a
2 changed files with 5 additions and 3 deletions

View File

@ -80,7 +80,7 @@ class InvenTreeTree(models.Model):
return unique
def getUniqueChildren(self, unique=None):
def getUniqueChildren(self, unique=None, include_self=False):
""" Return a flat set of all child items that exist under this node.
If any child items are repeated, the repetitions are omitted.
"""
@ -88,6 +88,9 @@ class InvenTreeTree(models.Model):
if unique is None:
unique = set()
if include_self:
unique.add(self.id)
if self.id in unique:
return unique

View File

@ -110,8 +110,7 @@ class PartList(generics.ListCreateAPIView):
if cat_id:
try:
category = PartCategory.objects.get(pk=cat_id)
cats = [category.id]
cats += [cat for cat in category.getUniqueChildren()]
cats = category.getUniqueChildren(include_self=True)
parts_list = parts_list.filter(category__in=cats)
except PartCategory.DoesNotExist:
pass