+ {% trans "Import Parts from File" as header_text %}
+ {% roles.part.change as upload_go_ahead %}
+ {% trans "Unsuffitient privileges." as error_text %}
+ {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=upload_go_ahead error_text=error_text %}
{% endblock %}
{% block js_ready %}
diff --git a/InvenTree/part/templates/part/part_app_base.html b/InvenTree/part/templates/part/part_app_base.html
index 0b578aaadd..c7b38f9cc2 100644
--- a/InvenTree/part/templates/part/part_app_base.html
+++ b/InvenTree/part/templates/part/part_app_base.html
@@ -14,7 +14,7 @@
{% endblock %}
{% block breadcrumbs %}
-
+
{% if part %}
{% include "part/cat_link.html" with category=part.category part=part %}
{% else %}
diff --git a/InvenTree/part/templates/part/upload_bom.html b/InvenTree/part/templates/part/upload_bom.html
index 57c7014197..151a4b5424 100644
--- a/InvenTree/part/templates/part/upload_bom.html
+++ b/InvenTree/part/templates/part/upload_bom.html
@@ -89,8 +89,11 @@ $('#bom-upload').click(function() {
},
title: '{% trans "Upload BOM File" %}',
onSuccess: function(response) {
- $('#bom-upload').hide();
+ // Clear existing entries from the table
+ $('.bom-import-row').remove();
+
+ // Disable the "submit" button
$('#bom-submit').show();
constructBomUploadTable(response);
diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html
index af558ced12..cb4ecc3059 100644
--- a/InvenTree/stock/templates/stock/item_base.html
+++ b/InvenTree/stock/templates/stock/item_base.html
@@ -10,7 +10,7 @@
{% endblock %}
{% block breadcrumbs %}
-
+
{% include 'stock/loc_link.html' with location=item.location %}
{% endblock %}
diff --git a/InvenTree/stock/templates/stock/stock_app_base.html b/InvenTree/stock/templates/stock/stock_app_base.html
index 93994ebd21..cf30a3221a 100644
--- a/InvenTree/stock/templates/stock/stock_app_base.html
+++ b/InvenTree/stock/templates/stock/stock_app_base.html
@@ -18,7 +18,7 @@
{% endblock %}
{% block breadcrumbs %}
-
+
{% if item %}
{% include 'stock/loc_link.html' with location=item.location %}
{% else %}
diff --git a/InvenTree/templates/InvenTree/settings/plugin.html b/InvenTree/templates/InvenTree/settings/plugin.html
index 7b428e161f..caee7c92bf 100644
--- a/InvenTree/templates/InvenTree/settings/plugin.html
+++ b/InvenTree/templates/InvenTree/settings/plugin.html
@@ -77,7 +77,7 @@
{% endif %}
{% if plugin.website %}
-
+
{% endif %}
{{ plugin.author }}
diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html
index 9bd0dba26e..32bc4d43e7 100644
--- a/InvenTree/templates/InvenTree/settings/user.html
+++ b/InvenTree/templates/InvenTree/settings/user.html
@@ -65,7 +65,7 @@
{% if emailaddress.primary %}
- {{ emailaddress.email }}
+ {{ emailaddress.email }}
{% else %}
{{ emailaddress.email }}
{% endif %}
diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html
index fd3e496f80..05d0712e6a 100644
--- a/InvenTree/templates/base.html
+++ b/InvenTree/templates/base.html
@@ -94,7 +94,7 @@
{% if server_restart_required and not demo_mode %}
- {% trans "Server Restart Required" %}
+ {% trans "Server Restart Required" %}
{% trans "A configuration option has been changed which requires a server restart" %}. {% trans "Contact your system administrator for further information" %}
diff --git a/InvenTree/templates/patterns/wizard/match_fields.html b/InvenTree/templates/patterns/wizard/match_fields.html
new file mode 100644
index 0000000000..a28708ce0b
--- /dev/null
+++ b/InvenTree/templates/patterns/wizard/match_fields.html
@@ -0,0 +1,98 @@
+{% load inventree_extras %}
+{% load i18n %}
+{% load static %}
+
+{% block form_alert %}
+{% if missing_columns and missing_columns|length > 0 %}
+
+ {% trans "Missing selections for the following required columns" %}:
+
+
+ {% for col in missing_columns %}
+
{{ col }}
+ {% endfor %}
+
+
+{% endif %}
+{% if duplicates and duplicates|length > 0 %}
+
+ {% trans "Duplicate selections found, see below. Fix them then retry submitting." %}
+