From dfc4fa7584b0dd5a0c75d19f1ab64e1dbc0b4201 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 25 Oct 2023 11:45:00 +1100 Subject: [PATCH] Fixes for table rendering (#5782) - Handle case where related object does not exist in the dataset --- InvenTree/templates/js/translated/purchase_order.js | 8 ++++++-- InvenTree/templates/js/translated/sales_order.js | 2 +- InvenTree/templates/js/translated/stock.js | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/InvenTree/templates/js/translated/purchase_order.js b/InvenTree/templates/js/translated/purchase_order.js index 67bce86f42..31ade365b0 100644 --- a/InvenTree/templates/js/translated/purchase_order.js +++ b/InvenTree/templates/js/translated/purchase_order.js @@ -1673,7 +1673,11 @@ 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}/?display=purchase-orders`); + if (row.supplier_detail) { + return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/?display=purchase-orders`); + } else { + return '-'; + } } }, { @@ -1986,7 +1990,7 @@ function loadPurchaseOrderLineItemTable(table, options={}) { title: '{% trans "Part" %}', switchable: false, formatter: function(value, row, index, field) { - if (row.part) { + if (row.part_detail) { return imageHoverIcon(row.part_detail.thumbnail) + renderLink(row.part_detail.full_name, `/part/${row.part_detail.pk}/`); } else { return '-'; diff --git a/InvenTree/templates/js/translated/sales_order.js b/InvenTree/templates/js/translated/sales_order.js index 0b99d47732..4a5a9b0330 100644 --- a/InvenTree/templates/js/translated/sales_order.js +++ b/InvenTree/templates/js/translated/sales_order.js @@ -1793,7 +1793,7 @@ function loadSalesOrderLineItemTable(table, options={}) { title: '{% trans "Part" %}', switchable: false, formatter: function(value, row, index, field) { - if (row.part) { + if (row.par_detail) { return imageHoverIcon(row.part_detail.thumbnail) + renderLink(row.part_detail.full_name, `/part/${value}/`); } else { return '-'; diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index 910c20d7e1..ce8207863e 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -3062,8 +3062,10 @@ function loadInstalledInTable(table, options) { formatter: function(value, row) { var html = ''; - html += imageHoverIcon(row.part_detail.thumbnail); - html += renderLink(row.part_detail.full_name, `/stock/item/${row.pk}/`); + if (row.part_detail) { + html += imageHoverIcon(row.part_detail.thumbnail); + html += renderLink(row.part_detail.full_name, `/stock/item/${row.pk}/`); + } return html; }