From eef7249864a6e3f567e7d358ae21c80e3ce4e725 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 21 Feb 2023 21:11:32 +1100 Subject: [PATCH] remove legacy function getReuiredParts - Was very database expensive - Not being used anywhere - use get_bom_items instead --- InvenTree/part/models.py | 25 ------------------------- InvenTree/part/test_bom_item.py | 8 -------- 2 files changed, 33 deletions(-) diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 59e5d78213..90a0e26a94 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1628,31 +1628,6 @@ class Part(InvenTreeBarcodeMixin, MetadataMixin, MPTTModel): """ self.bom_items.all().delete() - def getRequiredParts(self, recursive=False, parts=None): - """Return a list of parts required to make this part (i.e. BOM items). - - Args: - recursive: If True iterate down through sub-assemblies - parts: Set of parts already found (to prevent recursion issues) - """ - if parts is None: - parts = set() - - bom_items = self.get_bom_items() - - for bom_item in bom_items: - - sub_part = bom_item.sub_part - - if sub_part not in parts: - - parts.add(sub_part) - - if recursive: - sub_part.getRequiredParts(recursive=True, parts=parts) - - return parts - @property def supplier_count(self): """Return the number of supplier parts available for this part.""" diff --git a/InvenTree/part/test_bom_item.py b/InvenTree/part/test_bom_item.py index 266ae94aec..7d2ca582a0 100644 --- a/InvenTree/part/test_bom_item.py +++ b/InvenTree/part/test_bom_item.py @@ -44,14 +44,6 @@ class BomItemTest(TestCase): self.assertEqual(self.bob.bom_count, 4) - def test_in_bom(self): - """Test BOM aggregation""" - parts = self.bob.getRequiredParts() - - self.assertIn(self.orphan, parts) - - self.assertTrue(self.bob.check_if_part_in_bom(self.orphan)) - def test_used_in(self): """Test that the 'used_in_count' attribute is calculated correctly""" self.assertEqual(self.bob.used_in_count, 1)