diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index a8c7503680..2319c2b9f7 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -307,6 +307,11 @@ font-style: italic; } +.rowinherited { + background-color: #efe; + opacity: 90%; +} + .dropdown { padding-left: 1px; margin-left: 1px; diff --git a/InvenTree/part/templates/part/bom.html b/InvenTree/part/templates/part/bom.html index d8e8854791..ca0446378c 100644 --- a/InvenTree/part/templates/part/bom.html +++ b/InvenTree/part/templates/part/bom.html @@ -72,11 +72,9 @@ - +
-
- {% endblock %} {% block js_load %} diff --git a/InvenTree/templates/js/bom.js b/InvenTree/templates/js/bom.js index 8ab1b03227..b7f17bb519 100644 --- a/InvenTree/templates/js/bom.js +++ b/InvenTree/templates/js/bom.js @@ -420,15 +420,24 @@ function loadBomTable(table, options) { sortable: true, search: true, rowStyle: function(row, index) { - if (row.validated) { - return { - classes: 'rowvalid' - }; - } else { - return { - classes: 'rowinvalid' - }; + + var classes = []; + + // Shade rows differently if they are for different parent parts + if (row.part != options.parent_id) { + classes.push('rowinherited'); } + + if (row.validated) { + classes.push('rowvalid'); + } else { + classes.push('rowinvalid'); + } + + return { + classes: classes.join(' '), + }; + }, formatNoMatches: function() { return '{% trans "No BOM items found" %}';