mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add 'include self' option to getUniqueChildren
This commit is contained in:
parent
16b6ae8d61
commit
37dba91b4a
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user