From a42371598c086baa1cc306e9e4634a3c710fb918 Mon Sep 17 00:00:00 2001
From: Oliver Walters
Date: Tue, 23 Jul 2019 11:55:51 +1000
Subject: [PATCH] Fix part deletion template
- Display list of stock items which will be thusly deleted
---
InvenTree/InvenTree/helpers.py | 2 +-
InvenTree/part/templates/part/partial_delete.html | 8 ++++----
InvenTree/stock/models.py | 11 ++++++++---
3 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py
index f4e8f8b2e9..a34199d38c 100644
--- a/InvenTree/InvenTree/helpers.py
+++ b/InvenTree/InvenTree/helpers.py
@@ -176,7 +176,7 @@ def ExtractSerialNumbers(serials, expected_quantity):
else:
numbers.append(n)
except ValueError:
- print("Invalid group: {g}".format(g=group))
+ errors.append("Invalid group: {g}".format(g=group))
if len(errors) > 0:
raise ValidationError(errors)
diff --git a/InvenTree/part/templates/part/partial_delete.html b/InvenTree/part/templates/part/partial_delete.html
index b6516057bb..7b51bf2e89 100644
--- a/InvenTree/part/templates/part/partial_delete.html
+++ b/InvenTree/part/templates/part/partial_delete.html
@@ -16,12 +16,12 @@
{% endif %}
-{% if part.locations.all|length > 0 %}
+{% if part.stock_items.all|length > 0 %}
-There are {{ part.locations.all|length }} stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:
+
There are {{ part.stock_items.all|length }} stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:
- {% for stock in part.locations.all %}
- - {{ stock.location.name }} - {{ stock.quantity }} items
+ {% for stock in part.stock_items.all %}
+ - {{ stock }}
{% endfor %}
diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py
index 7695a0e3ae..4f4c74d6a2 100644
--- a/InvenTree/stock/models.py
+++ b/InvenTree/stock/models.py
@@ -528,9 +528,14 @@ class StockItem(models.Model):
return True
def __str__(self):
- s = '{n} x {part}'.format(
- n=self.quantity,
- part=self.part.full_name)
+ if self.part.trackable and self.serial:
+ s = '{part} #{sn}'.format(
+ part=self.part.full_name,
+ sn=self.serial)
+ else:
+ s = '{n} x {part}'.format(
+ n=self.quantity,
+ part=self.part.full_name)
if self.location:
s += ' @ {loc}'.format(loc=self.location.name)