From 64dd8704368f1184096d4c30dd3ea0c2148ae20a Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 4 Mar 2022 12:23:47 +1100 Subject: [PATCH 1/2] Fix broken URL --- InvenTree/templates/js/translated/order.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index b4757e2494..6ea4e9ebb6 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -959,7 +959,7 @@ function loadPurchaseOrderTable(table, options) { sortable: true, sortName: 'supplier__name', formatter: function(value, row) { - return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`); + return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/?display=purchase-orders`); } }, { From 89f2317e1c6d193c07c23840d5ea29897fef929f Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 6 Mar 2022 22:18:31 +1100 Subject: [PATCH 2/2] Bug fix for stock serial numbers: - empty strings do not count as a valid serial number --- InvenTree/stock/models.py | 2 +- InvenTree/stock/tests.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 14132d297b..70af651686 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -350,7 +350,7 @@ class StockItem(MPTTModel): @property def serialized(self): """ Return True if this StockItem is serialized """ - return self.serial is not None and self.quantity == 1 + return self.serial is not None and len(str(self.serial).strip()) > 0 and self.quantity == 1 def validate_unique(self, exclude=None): """ diff --git a/InvenTree/stock/tests.py b/InvenTree/stock/tests.py index 40e6561926..98a8f5e288 100644 --- a/InvenTree/stock/tests.py +++ b/InvenTree/stock/tests.py @@ -346,6 +346,40 @@ class StockTest(TestCase): with self.assertRaises(StockItem.DoesNotExist): w2 = StockItem.objects.get(pk=101) + def test_serials(self): + """ + Tests for stock serialization + """ + + p = Part.objects.create( + name='trackable part', + description='trackable part', + trackable=True, + ) + + item = StockItem.objects.create( + part=p, + quantity=1, + ) + + self.assertFalse(item.serialized) + + item.serial = None + item.save() + self.assertFalse(item.serialized) + + item.serial = ' ' + item.save() + self.assertFalse(item.serialized) + + item.serial = '' + item.save() + self.assertFalse(item.serialized) + + item.serial = '1' + item.save() + self.assertTrue(item.serialized) + def test_serialize_stock_invalid(self): """ Test manual serialization of parts.