diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 008523364d..7e6660f737 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -12,7 +12,6 @@ from .serializers import PartSerializer from InvenTree.views import TreeSerializer - class PartCategoryTree(TreeSerializer): title = "Parts" diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 9740d1ccc3..6ae17df085 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -82,7 +82,7 @@ class Part(models.Model): """ Represents an abstract part Parts can be "stocked" in multiple warehouses, and can be combined to form other parts - """ + """ def get_absolute_url(self): return '/part/{id}/'.format(id=self.id) @@ -256,18 +256,19 @@ class Part(models.Model): self.allocated_build_count, ]) + + @property + def stock_entries(self): + return [loc for loc in self.locations.all() if loc.in_stock] + @property def total_stock(self): """ Return the total stock quantity for this part. Part may be stored in multiple locations """ - stocks = self.locations.all() - if len(stocks) == 0: - return 0 + return sum([loc.quantity for loc in self.stock_entries]) - result = stocks.aggregate(total=Sum('quantity')) - return result['total'] @property def has_bom(self): diff --git a/InvenTree/part/templates/part/stock.html b/InvenTree/part/templates/part/stock.html index e2176afaec..a3c6f79799 100644 --- a/InvenTree/part/templates/part/stock.html +++ b/InvenTree/part/templates/part/stock.html @@ -22,7 +22,7 @@
-{% for stock in part.locations.all %} +{% for stock in part.stock_entries %}